EOF? cin.get?



  • Hier erstmal mein Code:

    #include <iostream>
    
    using namespace std;
    
    /*
            Tag 1
            C++ Lernen
            Datum 1. 10. 2009
            Author: Sandro E.
    
    */
    
    int main(void) {
    
    int ch;
    cout << " >  ";
    while( (ch = cin.get()) != EOF ){
           if( (char)ch == '.'){
               break;
    
               }
               if((char)ch == '\n' ){
                           cout << "\n > ";
                           }
                           else {
                                cout << (char) ch;
                                }
    }
    
    cout << "Programmende erreicht! \n"; 
    
    system ("PAUSE");
    return 0;
    }
    

    Nun zur frage: Was bewirkt Zeile 17? Könnt ihr mir die Zeile mal bitte genauer erklären?

    Danke



  • EOF heißt End Of File. Und die ganze Zeile heißt übersetzt:

    Solange das Zeichen nicht EOF (Außerhalb der ASCII-Zeichen) ist, wiederhole.

    EOF ist in stdio.h oder irgendwo noch so definiert:

    #define EOF -1

    EOF erreichst du in dem du: STRG + Z eingibst. Sollte so ausschauen: ^Z

    lG



  • irgendwie muß ich bei

    while( (ch = cin.get()) != EOF )
    

    an

    while( !(cin>>ch).eof() )
    

    denken.



  • Warum kommen, wenn ich

    while( (ch = cin.get()) != EOF )
    

    durch

    while( !(cin>>ch).eof() )
    

    ersetze, dann etwas eingebe und RETURN drücke so viele komische Smileys?


Log in to reply