001
13.10.2003, 12:43 Uhr
virtual
Sexiest Bit alive (Operator)
|
Eine variable hat immer einen festen Datentyp, folglich speichert cin die Varaible auch als diesen Typen, mit dem die Variable deklaratiert wurde:
C++: |
int i; char c; double d; MyClass m;
std::cin >> i; // LIest ein int std::cin >> c; // Liest ein char std::cin >> d; // Liest ein double std::cin >> m; // Liest eine MyClass Instanz, wenn Operator >> dafür definiert wurde
|
Generell sollte man berücksichtigen, daß das >> erwartet, daß die Eingabe in Textform vorliegt. Dh. cin liest einen Text ein und wandelt es dann in einen Wert um, der fü die variable passend ist. Es gibt dann halt schwierigkeiten, wenn da was anderes als der Text steht, als man eigentlich lesen will. So wirst Du Probleme haben, wenn folgende Eingabe gegeben ist
und du nun den ASCII Code von den Buchstaben ermitteln möchtest:
C++: |
int i,j,k,l; std::cin >>i>>j>>k>>l; std::cout<<"Dis ASCII Codes sind: "<<i<<' '<<j<<' '<<k<<' '<<l<<std::endl;
|
cin geht nämlich hin und prüft, ob 'abcd' eine gültige Zahl ist. Ist es aber nicht - folglich geht das dann schief. Man muß die Aufgabe dann so lösen:
C++: |
char i,j,k,l; std::cin >>i>>j>>k>>l; std::cout<<"Dis ASCII Codes sind: "<<int(i)<<' '<<int(j)<<' '<<int(k)<<' '<<int(l)<<std::endl;
|
-- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |