%s bricht bei Leerzeichen ab
-
Ich habe vor eine Textdatei auszulesen die Zeichen der ersten Zeile in ein Array zu speichern. Das funktioniert soweit auch nur, dass er bei einem Leerzeichen aufhört. Das soll er aber nicht.
Meine Test Text Datei:
--------------------
Test Mest Fest
-------------------bei der ersten Zeile schreibt er für zeile1 nur Test und dann ist der rest nicht mehr definiert...:
#include <stdio.h> #include <stdlib.h> int main(void) { FILE *fp1; char zeile1[17]; int i, zaehler = 0; char buchstabe; fp1 = fopen("faust.txt", "r"); printf("Nach welchem Buchstaben moechten Sie den Fausttext durchsuchen?\n"); scanf("%c", &buchstabe); fscanf(fp1, "%s", &zeile1); printf("%s\n", zeile1); for(i=1;i<17;i++) { if (zeile1 == buchstabe) { zaehler++; } } printf("Der Buchstabe %c kommt %i Mal in der ersten Zeile vor\n", buchstabe, zaehler); system("PAUSE"); return 0; }Kann mir jemand helfen ?
-
Das liegt an fscanf. Benutze stattdessen fgets. Lies Dir Referenzen zu den beiden Funktionen durch.
-
Das hier geht schon mal nicht:
if (zeile1 == buchstabe) {du meinst wohl zeile1[i]. War wohl ein Vertipper...

Nimm stattdessen fgets, dann sollte das mit der ganzen Zeile auch passen ("fgets(zeile1,17,fp1);"). Übrigens kannst du zeile1 ruhig etwas größer machen. Es soll ja auch noch mit anderen Dateien bzw. Zeilen funktionieren, oder?