Fehler durch Kommentar



  • Hallo!

    Ich habe ein Problem mit einer Funktion, die sicher eine Integerzahl einlesen soll.
    Schreibe ich den Kommentar mit //, dann kompiliert das Programm nicht, weil offenbar der Rest der Funktion mit ausgeblendet wird.
    Kommentare mit /* ... */ funktionieren dagegen!

    int ein_sicher(const char *aufforderung){
    
      int x=0;                  //noch ok, erst aber der nächsten Zeile nicht mehr
      char c='\n';
      do{
        if(cin.rdstate() || c!='\n'){
          cin.clear(); cin.ignore(INT_MAX,'\n');		/* Kommentar ok */
          }
        cout << aufforderung;
        cin >> x; c=cin.peek();
      } while(cin.rdstate() || c!='\n');			//Fehler
    
      cin.clear(); cin.ignore(INT_MAX,'\n');
      return x;
    
    }
    

    Erst ab der Zeile: char c='\n'; kann ich nicht mehr mit // kommentieren.

    Hatte schon mal jemand so ein Problem und wenn ja, woran kann das liegen?

    Grüße,
    Rodi



  • Hi!

    Sieht soweit ok aus. Was für eine IDE verwendest du denn? Was für ein Compiler???

    grüße



  • Meine Vermutung: Du hast den Kommentar mit einem \ beendet - das wird vom Präprozessor gesondert behanelt und klebt die nachfolgende Zeile deines Programms hinten an den Kommentar daran (und da ein //-Kommentar bis zum Zeilenende geht, wird damit die nächste Zeile mit auskommentiert).



  • Ich programmier im MS Visual Studio.NET 2003

    @CStoll: nein, ich hab es genau so geschrieben, wie ich es hier reinkopiert habe



  • In dem Fall ist "kompiliert nicht " eine etwas knappe Fehlerbeschreibung - was für einen Fehler meldet denn Visual Studio?



  • Die Fehlermeldung hing davon ab, wo ich den Kommentar gesetzt habe. Meist hat er dann die "}" vermisst.

    Aber ich habe den Fehler gefunden. 🙂
    Habe das Stück Code per FTP aus dem Netz gezogen, aber nicht binär! Daher hatte ich in meinem Code plötzlich nach jeder Zeile eine zusätzliche Leerzeile. Ich hab diese rausgenommen, denke aber, dass die für den Fehler verantwortlich waren.
    Jetzt läuft es und ich danke allen, die versucht haben zu helfen!

    Grüße,
    Rodi



  • Ich denke eher das das ein nicht darstellbares Zeichen war.

    Das kann bei kopiertem Quelltext aus dem Internet schonmal passieren... 😉


Anmelden zum Antworten