einlesen von strings



  • hallo zusammen,
    habe mal ein kleines problem.

    ich versuche einen string mit gets( string ) oder fgets( string , 100 , stdin ) einzulesen, leider überspringt er das eingabefeld immer.
    habe deswegen dann versucht mit fflush( stdin ) ( ich weiss , ist nicht schön aber wie sonst ? *tippwollen* ) den keyboardsp. zu löschen, leider ohne erfolg.
    wie könnt ich sonst noch versuchen einen string einzulesen ? ( scanf geht nicht da ja nur ein wort !!! ).

    also dann, danke und tschö 🙂



  • versuch mal den buffer zu leeren..

    variante fußweg

    while (cin.get() != '\n') ;
    

    variante radfahrweg

    cin.clear();
    // ignore ignoriert die nächsten n Zeichen im Eingabepuffer
    // rdbuf liefert einen Zeiger auf den Puffer.
    // in_avail liefert die Anzahl der Zeichen im Puffer, die noch nicht 
    // gelesen wurden.
     cin.ignore(cin.rdbuf()->in_avail());
    


  • verwende c kein c++ 🙂
    hätt ich vielleicht erwähnen solln 🙂



  • for(i = 0; buffer != '\n'; i++)
              ;
      buffer[i] = '\0';
    

    Wie wäre es damit?

    Gruß
    grottenolm


Anmelden zum Antworten