String ( mit Leerzeichen ) einlesen



  • Ich bin bisher iwie auf keine wirkliche Lösung gestoßen.
    Einen String mit white-spaces einlesen ist kein Problem..

    int main(void) {
      int size = 20;
      char string[size], format[20];
      sprintf(format, "%%%d[^\n]", size); \\ z.B. hier %20[^\n] (später als param)
      printf("String eingeben: ");
      scanf(format, string);
      printf("String: %s\n", string);
    }
    

    format[20] kann man erstmal außen vor lassen

    problem: packt man das ganze in eine while(1) schleife
    bleibt iwas im buffer



  • okay, geil ^^ hab im vorherigen thema eine lösung gefunden
    der titel ließ es aber nicht vermuten

    do {
      printf("String eingeben: ");
      char eingabe[100];
      fgets( eingabe,100,stdin );
      if( strchr(eingabe,'\n') ) *strchr(eingabe,'\n')=0; else while( getchar()!='\n' ); 
      printf("String: %s ", eingabe);
    }while(1);
    

Anmelden zum Antworten