cin: wie viel gibt es zu lesen?



  • Mit cin kann man ja von der Standardeingabe lesen. Wenn der User z. B. "foo bar" eingibt erhalte ich mit:

    std::string tmp;
    cin>>tmp; // jetzt steht foo in tmp
    
    cin>>tmp; // jetzt steht bar in tmp
    

    wie kann ich herausfinden ob es noch etwas zu lesen gibt.

    Problem ist folgendes: User kann einen bliebig langen String mit beliebig vielen Leerzeichen eingeben und ich möchte alle "Wörter" lesen.

    void echo()
    {
      while(es gibt noch was für cin zu lesen)
      {
         cin>>tmp;
         cout<<tmp;
      }
    }
    


  • Vertexwahn schrieb:

    Mit cin kann man ja von der Standardeingabe lesen. Wenn der User z. B. "foo bar" eingibt erhalte ich mit:

    std::string tmp;
    cin>>tmp; // jetzt steht foo in tmp
    
    cin>>tmp; // jetzt steht bar in tmp
    

    wie kann ich herausfinden ob es noch etwas zu lesen gibt.

    Problem ist folgendes: User kann einen bliebig langen String mit beliebig vielen Leerzeichen eingeben und ich möchte alle "Wörter" lesen.

    void echo()
    {
      while(es gibt noch was für cin zu lesen)
      {
         cin>>tmp;
         cout<<tmp;
      }
    }
    

    Gegenfrage, was spricht gegen "getline"? Oder hab ich jetzt was falsch verstanden?



  • Ich würd auch mal zu std::getline raten. Obwohl du das dort einfach erreichen kannst:

    void echo()
    {
      while( cin >> tmp )
      {
         cout<<tmp << "\n";
      }
    }
    


  • getline ist gut :xmas1:


Anmelden zum Antworten