Problem beim String eingeben



  • ich habe folg. code

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    void main()
    {
      string in;
      int x;
    
      cout<<"Zeichenkette: ";
      getline(cin,in);
    
      cout<<"Zahl: ";
      cin >> x;
    
      cout<<endl<<"Eingabe:\t"<<in<<endl
          <<"Zahl:\t\t"<<x<<endl;
    }
    

    Das problem liegt darin das ich immer 2*ENTER drücken muss ehe ich die zahl eingeben kann. wichtig ist das auch leerzeichen im string vorkommen dürfen.
    Danke.



  • Das Problem ist getline(), die Implementierung des MSVC ist etwas daneben gegangen und erfordert das zweimalige Drücken von Enter.

    Am besten lädst du dir den Fix auf http://bens.c-plusplus.info 🙂

    MfG SideWinder



  • Hi, Wenn du schon mit strings arbeitest, dann mach es doch gleich so:

    #include <iostream>
    #include <stdlib.h>
    #include <string>
    
    using namespace std;
    
    int main()
    {
      string in;
      int x;
    
      cout<<"Zeichenkette: ";
      cin>>in;
    
      cout<<"Zahl: ";
      cin>>x;
    
      cout<<endl<<"Eingabe:\t"<<in<<endl
          <<"Zahl:\t\t"<<x<<endl;
    system("PAUSE");
    return 0;
    }
    


  • Nein eben nicht, hier wird keine ganze Zeile eingelesen 😃

    MfG SideWinder



  • Ich will zwar nicht einem Mod wiedersprechen 😃 aber er arbeitet doch mit string und nicht mit char*
    Und außerdem bei mir klappt es (DevCpp). :p



  • Nur weils der Dev macht, heißt das noch lange nicht, dass es richtig ist 😉


Log in to reply