Mites näppäin puskurin tyhjäys onnistuisi? Ettei komentoikkuna katoa heti käytän cin.get(); funktiota. Ohjelmat voisi myös kyllä suorittaa suoraan komentoriviltä mutta tämä on helpompaa
Jos nyt ymmärsin oikein, niin esimerkiksi while -silmukka tai jokin switch-case rakennelma voisi toimia. Puskurin tyhjennykseen en osaa sanoa mitään.
jos ohjelman loppu on tällainen,
int main{ cout << "Tekstiä: "; cin >> muuttuja; // <- Painetaan entteriä cout << "Kirjoitit " << muuttuja << "."; cin.get(); }
ohjelmahan loppuu kun painetaan entterii kommentodulla rivillä, koska näppäinpuskuriin jää tieto entterin painalluksesta
C:ssä tyhjennys tapahtuu käskyllä fflush(stdin) ja C++:ssa muistaakseni käskyllä cin.flush().
C:ssä funktio fflush()
on speksattu vain output-tiedostoille ja voi stdin
in tapauksessa tehdä jotain tai olla tekemättä yhtään mitään.
C++:ssa std::cin
illä ei ole flush
-funktiota.
Ohjelman suorittaminen komentoriviltä olisi kyllä ihan hyvä juttu, niin ei tarvitse sotkea ohjelman logiikkaan ylimääräisiä kummallisuuksia. Mutta jos sen nyt välttämättä näin tahtoo tehdä, niin tämmösiä kun laittaa muutaman, niin homma tulee yleensä aika simppelisti hoidettua:
std::cin.ignore(1000, '\n');
koo kirjoitti:
C:ssä funktio fflush() on speksattu vain output-tiedostoille ja voi stdinin tapauksessa tehdä jotain tai olla tekemättä yhtään mitään.
C++:ssa std::cinillä ei ole flush-funktiota.
Taisin muistella joitain vanhoja kääntäkohtaisia virityksiä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.