TheBest Geschrieben 4. Dezember 2005 Geschrieben 4. Dezember 2005 Hallo Ich soll für die Schule ein Programm schreiben (Zeichenweise Ein- und Ausgabe in Datein). So, ich bin so weit gekommen, dass ich char Feld anlege und den Text darüber einlese und dann Zeichenweise über fputc() einlese. Nur irgendwie liest er nur das erste Wort ein, und in der Datei ist nach diesem Wort irgendwelcher 'Unsinn' dabei. Kann mir jemand helfen??? Danke schon mal im voraus.... #include<stdio.h> #include<iostream.h> void main() { FILE *f; char a[100]; int i=0; f=fopen("L:\\Test\\eins.txt","w"); cout<<"Bitte einen Text eingeben (mit Enter beenden):\n"<<endl; cin>>a; for(;i<=200;i++) { if(a[i]!='\r') { fputc(a[i],f); } else { break; } } fclose(f); } Zitieren
MichiBert Geschrieben 4. Dezember 2005 Geschrieben 4. Dezember 2005 Du vermischst in Deinem Quellcode verschiedene Standards. Ich denke, Du solltest erstmal nur den Ansi-C Standard verwenden. Das Ganze sieht dann so aus: #include <stdio.h> #include <stdlib.h> main() { FILE *f ; char a[100] ; int i ; f = fopen("datei.txt","w") ; system("CLS") ; printf("Bitte einen Text eingeben (mit Enter beenden):\n\n") ; gets(a) ; for(i = 0; i <= 200; i++) { if(a[i]!= '\0') { fputc(a[i],f); } else { break ; } } fclose(f); printf("\n\n----------------\nDas Programm ist beendet.\n\n") ; system("PAUSE") ; } Der Fehler war allerdings nur, dass Du in Deinem char-Array nicht nach der Null-Terminierung gesucht hast, sondern das ganze Array in die Datei geschrieben hast. Da steht dann natürlich nur Murks drin. Versuch's mal so, wie ich es gemacht habe. Zitieren
TheBest Geschrieben 4. Dezember 2005 Autor Geschrieben 4. Dezember 2005 Danke für die Hilfe. Ich kann mich jedes mal aufs neue ärgern, wenn es so 'primitve' Fehler sind.... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.