Gibt es eine Methode xxx() der Klasse istream, die ermittelt ob der Standardinput noch Zeichen enthält? Wenn nicht sollte die Methode sofort false zurückliefern ansonsten true..?
C++:
#include <iostream>
int main(){ std::string eingabe; if (std::cin.xxx()){ std::cin>>eingabe; } }
Ersters prüft, ob das Dateiende von cin erreicht ist, letzteres, ob augenblicklich daten anliegen. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21)
Ich möchte, dass das Programm erkennt wenn eine Eingabe vorliegt. Mit std::cin.rdbuf()->in_avail() klappt dies anscheinend nicht... siehe folg. Programm
C++:
#include <iostream>
int main(){ while(true){ if (std::cin.rdbuf()->in_avail()){ std::cout<<"Eingabe erkannt."<<std::endl; } } }
Das geht nicht so wie Du Dir das vorstellst, jedenfalls nicht mit ANSI C++. Was sich hinter cin verbirgt ist in der Regel ein gepufferter Eingabestream, der erst Dann die Daten an Dich weitergibt, wenn entweder das Ende aller Daten erreicht ist (eof()) oder wenn eine bestimmte Taste (ENTER) gedrückt wurde. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21)
#include <iostream> int main(){ std::string eingabe; std::cin>>eingabe; std::cout<<eingabe<<std::endl; }
bewirken, dass die komplette Eingabezeile ausgegeben wird und nicht nur bis zum ersten Leerzeichen. Bei Eingabe von "Hallo Test" gibt das Programm nur "Hallo" aus.Dieser Post wurde am 11.08.2003 um 11:06 Uhr von Marzel editiert.