Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Näppäin puskurin tyhjäys

temu92 [20.08.2006 16:05:19]

#

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

Hara Kiri [20.08.2006 21:12:15]

#

Jos nyt ymmärsin oikein, niin esimerkiksi while -silmukka tai jokin switch-case rakennelma voisi toimia. Puskurin tyhjennykseen en osaa sanoa mitään.

temu92 [20.08.2006 23:15:39]

#

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

A-P [20.08.2006 23:24:46]

#

C:ssä tyhjennys tapahtuu käskyllä fflush(stdin) ja C++:ssa muistaakseni käskyllä cin.flush().

koo [21.08.2006 09:51:31]

#

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.

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');

A-P [21.08.2006 09:57:55]

#

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ä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta