Frage zum scanf befehl
-
hi
hab ne frage zum scanf befehlder benutzer soll zb ein produkt eingeben z.b "Pentium4 3GhZ FSB200" also das ganze mit abständen usw
wenn ich jetzt allerdings scanf("%s", &artikel); mache geht das leider nicht
gibt es eine ähnliche funktion die es auch erlaubt abstände zwischen den wörtern zu machen?ich will nämlich dann alles was in der variable "artikel" steht in eine datei schreiben
hoffe jemand kann mir weiterhelfen
-
schau dir mal fgtes an
-
mhm hab mir den befehl angesehn. ist aber nicht das richtige (soweit ich es verstanden hab liest er einen string aus datei)
ich will aber das der benutzer was über die tatstatur eingibt (z.b "Pentium4 3Ghz Fsb800") und dass das ganze dann in einem string gespeichert wird um diesen dann per fprintf in eine datei zu schreiben
-
Genaugenommen wird keine Datei erwartet sondern ein Stream. Da gibst du stdin an. Das ist der Standard-Eingabestrom, wovon auch scanf usw. liest.
-
Hier ist mal ein Beispiel für "fgets".
printf("\nVon welcher Firma ist Windows?\n"); fgets(antwort1, 100, stdin); if((strcmp(richtig1, antwort1)) == 0) printf("\nRICHTIG!\n"); else printf("\nLeider flasch!\n\n");
-
leider geht es immer noch nicht
hier mal der code teilFILE *datei; char artikel[100]; datei=fopen("C:/test.txt", "w"); printf("Eingeben:"); fgets(artikel, 100, stdin); fprintf(datei, "%s", artikel);
immer wenn der satz Eingabe: kommt überspringt er die eingabe und macht danach normal weiter. also ich kann gar nichts eintippen
-
Vermutlich ist im Eingabebuffer noch ein '\n' von vorher, hatte diese Probleme auch sporadisch.
Am besten packst du das fgets in eine do while Schleifedo { fgets(artikel, 100, stdin); } while('\n'==artikel[0])
-
jetzt funktionierts!
danke sehr