Probleme beim Vergleich " while (betrag != "\n");



  • Moin,

    #include <iostream>
    #include <stdlib.h>
    #include <stdio.h>
    
    int main(void)
    {
    
      FILE *fp1;
    
      char betrag;
      char frage,antwort,rantwort;
      fp1 =fopen("fragen.txt","r");
    
       do
       {
        fscanf(fp1,"%c",&betrag);
        printf("%c",betrag);
       }
       while (betrag != "\n");  
    
      system("PAUSE");	
      return 0;
    }
    

    Also ich hab folgendes Problem :

    Ich möchte, das er die Datei solange ausliesst bis er das ende der zeile erreicht hat, also die Variabel einen Zeilenumbruch enthält!
    Es ist wichtig, dass die Schleife erst beim zeilenumbruch stopt.

    Ich hatte angenommen das es wie in Zeile 20 funktioniert, aber der Compiler meldet:
    ISO C++ forbids comparison between pointer and integer

    Was kann ich nun tun? Das Programm ist eine Konsolen Anwendung.

    Schon mal Danke.

    VLG MrAnybody



  • "\n" ist ein String. Du willst aber mit einem Character vergleichen, also muss es '\n' heißen. 🤡



  • Jo alles klar. Nun funktionierts. Vielen dank!



  • #include <iostream>
    #include <iterator>
    #include <algorithm>
    #include <fstream>
    
    int main()
    {
        std::ifstream file_stream("fragen.txt");
        std::copy(std::istream_iterator<char>(file_stream), std::istream_iterator<char>(), std::ostream_iterator<char>(std::cout, ""));
    }
    

    ... kurz und C++-Style 😛



  • Ja auch danke an dich. Aber wir sollen C und nicht C++ Programmieren !!!

    LG MrAnybody



  • MrAnybody schrieb:

    Ja auch danke an dich. Aber wir sollen C und nicht C++ Programmieren !!!

    LG MrAnybody

    In C gibt es kein iostream



  • ISO C++ forbids comparison between pointer and integer

    Naja scheinst ja nen C++-Compiler zu nutzen und dann bist du auchnoch im C++-Forumbereich ... von d.h. war meine Schlussfolgerung wohl logisch ...


Anmelden zum Antworten