/n und endl



  • Hallo Leute,

    kann mir jemand eventuell den Unterschied zwischen cout<<"\n"; und cout<<endl; erklären.

    Danke



  • Ersteres ist kein gueltiges C, da << nur auf ints, nicht auf Zeigern definiert ist. Letzteres shifted die Variable cout um endl Bits nach links, vorausgesetzt, beides sind ints.

    Willst Du eventuell nach nebenan ins C++-Forum?



  • soweit ich weiss, ist

    endl
    

    nichts weiter als

    "\n" << flush
    


  • dEUs schrieb:

    soweit ich weiss, ist

    endl
    

    nichts weiter als

    "\n" << flush
    

    Bingo!
    Der Puff wird danach geleert.

    Ansonsten unterscheiden die sich nicht.



  • Danke,

    mein Problem war nämlich folgendes
    [/cpp]
    if ((Hz1->next->reihe==Hz2->reihe) && (Hz1->next->platz==Hz2->platz))
    {
    cout<<"Platz ist schon vergeben"<<endl;
    cout<<"Ueberschreiben J/N ?";
    ueberschreiben=getch();
    if (ueberschreiben=='j'||ueberschreiben=='J')
    {
    strcpy(Hz1->next->fam_name, Hz2->fam_name);
    strcpy(Hz1->next->vorname, Hz2->vorname);
    }
    else
    delete Hz2;
    break;
    }
    Hz1=Hz1->next;
    [/cpp][cpp]

    Es wird immer nur die Zeile Platz ist schon überschriebn am Bildschirm dargestellt. Danach steht das Programm und wartet auf eine Eingabe, erst danach wird die zweite Zeile hingeschriebn.

    Danke



  • flatlander schrieb:

    Hallo Leute,

    kann mir jemand eventuell den Unterschied zwischen cout<<"\n"; und cout<<endl; erklären.

    Danke

    falsches forum => c++



  • Aus diesem Grund nimmt man std::cin für Eingaben. cin und cout hängen nämlich so zusammen, dass dein Problem niemals auftritt.
    Wenn du bei getch() bleiben willst, kannst du "cout << flush;" schreiben. Dann wird der Puffer ausgegeben und geleert.



  • toom schrieb:

    falsches forum => c++

    Guten morgen. 😉


Anmelden zum Antworten