Elikkä ajattelin huvin ja urheilun vuoksi kokeilla tehdä herätys kellon koneelle. Ongelmaksi muodostuu herätys, joka olisi kotelokaijuttimen ihana vikinä =). Mutta kotelovikinää ei tule kuin yhden kerran koska ohjelman suoritus pysähtyy scanf lauseeseen. Eli miten saisin ohjelman suorituksen jatkumaan kunnes valitsen 1 tai 2 ???
do { printf("\a\a"); //Se ihana vikinä delay(300000); //Viivettä ohjelmaan printf("\n\nValitse:\n1.Lopeta\n2.torkku "); scanf("%d",&valinta); //Ongelma kohta switch (valinta) { case 1: tunti=0; return valinta; break; case 2: minuutti+=5; break; } } while(valinta!=1);
En ole mikään über C++-koodari, mutta yleensä kahta asiaa yhtäaikaa tehtäessä(tapauksessasi syötteen luku ja muu) käytetään säikeitä (threads).
Jos olet aiemmin lukenut käyttäjältä syötettä, niin voit yrittää leikkiä ungetc-funktiolla:
/* Tungetaan stdin-tiedostoon eli sinne, mistä käyttäjän syöte luetaan, "5" ja "\n", käänteisessä järjestyksessä */ ungetc('\n', stdin); ungetc('5', stdin); /* Nyt scanf:n pitäisi löytää sieltä 5 ja "enter" */
No juu. Tämä oli vain kummallinen idea, en itsekään keksi, miten siitä saisi toimivan tuossa koodissa. Varmaankin nuo threadit tulevat väkisin eteen, mutta ne eivät olekaan ihan helpoimpia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.