Veröffentlicht 4. Dezember 200519 j 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); }
4. Dezember 200519 j 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.
4. Dezember 200519 j Danke für die Hilfe. Ich kann mich jedes mal aufs neue ärgern, wenn es so 'primitve' Fehler sind....
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.