Bei cin Fehlermeldung!



  • Hi,
    ich weiss nicht was mit meinem Compiler los ist, aber auf einmal gibt er Fehler aus, die vorher gar nicht kamen. Ich habe folgendes Problem:

    Wenn ich ein einfaches Cout/cin programm machen will und den folgenden Quellcode schreibe:

    #include "iostream.h"
    
    char hallo[]
    
    void main()
    {
    	cout<< "Hello!";
    	cin >> hallo;
    }
    

    Gibt der Compiler die folgenden Fehler aus:

    Kompilierung läuft...
    Text1.cpp
    C:\Windows\Text1.cpp(5) : error C2144: Syntaxfehler : Fehlendes ';' vor Typ 'void'
    C:\Windows\Text1.cpp(5) : fatal error C1004: Unerwartetes Dateiende gefunden
    Fehler beim Ausführen von cl.exe.

    Text1.exe - 2 Fehler, 0 Warnung(en)

    Warum kommen diese Fehler? Was mache ich falsch? Wenn ich den cin befehl und das char-array weglasse geht es noch, aber warum? Brauche ich mehr Header?

    MFG Haldir



  • hinter char[] fehlt ein ;

    DAnn egth das aber nicht so, einfach nur

    char ar[];

    entweder so:
    char ar[sonsteinwert]

    ioder

    char ar[] = "aonstewas";



  • #include "iostream.h"
    ->
    #include <iostream>

    in "" nur, wenn es deine eigene Datei ist. Kann aber auch sein, dass " auch richtig ist.
    das fehlende .h ist irgendwie der neue Standard

    void main()
    ->
    int main()



  • #include <iostream> //<> weil system-header, ohne .h weil neuer Standard
    #include <string> //für die std::string-Klasse, die Strings deutlich einfacher handhabbar macht
    
    int main()  //int, weil das System einen Rückgabewert erwartet
    { 
        std::string hallo; //globale sind Variablen böse, weil sie auf die Thread-Safety gehen und allgemein Verwirrung stiften
    
        cout<< "Hello!"; 
        cin >> hallo; 
    
        return 0; //Wenn main 0 zurückgibt, heißt das, alles ist gut gelaufen
    }
    


  • Für cin und cout wird auch noch std:: benötigt oder ein using namespace am anfang.



  • Und ganz nebenbei,

    char hallo[]; 
    
    tja, wie groß ist das Array nun?
    Die Größe bei [] muss bekannt sein.
    Ein [n] wäre Okay, aber ein std:string wäre besser.
    


  • Ah, Danke vielmals für die Antworten.
    Werde es dann mal verbessern und schauen ob es geht.

    MFG Haldir


Anmelden zum Antworten