cin - char[] int[]



  • Hallo

    Wiso ist das so?

    char c[5];
    cin >> c; // Das hier geht
    
    int i[5];
    cin >> i; // Das hier geht nicht
    

    Kann man es dadurch erklären, dass der Compiler dies bei Character arrays einfach zulässt?

    Bin für jede Antwort dankar!



  • Schau dir mal die Überladungen für den istream >> Operator an:
    http://www.cplusplus.com/reference/iostream/istream/operator>>/

    istream& operator>> (istream& is, char* str );
    

    Deswegen kannst du ein char-Array übergeben. Bei einem einem string wie "hallo" sind alle Buchstaben einzelne Chars. Ein integer Wert kann aber mehrstellig sein, aber trotzdem brauch man kein Array. Wie erwartest du denn, wie die Eingabe für ein integer-Array sein sollte? Man müsste ja mehrere Werte bei der Eingabe angeben. Daher macht das keinen Sinn.



  • Mir ist schon klar das es keinen Sinn machen würde wie beim char-Array, aber wunderte mich wiso es da funktioniert und bei einem integer-Array bsp. nicht.

    Bin jezt dem Link gefolgt und sehe da die Methoden, so macht das ganze jezt Sinn 🙂 Bin eben noch bei den Grundlagen...

    Vielen Dank FreakY<3Cpp


Anmelden zum Antworten