fscanf ärgert mich
-
Ich hab ein großes Problem. Ich versuche Werte mit fscanf einzulesen. Ich will erstmal 3 integer werte und einen String von 4 Zeichen einlesen. das ganze sieht im moment so aus:
char w_off[10][5]; int x_off[10],y_off[10],z_off[10]; int x,y,z,c,m; FILE *in; in = fopen ("test.txt","r"); char w[5]; while(fscanf(in,"%d%d%d%4c",&x,&y,&z,w)==4) { w[5]=0; x_off[c]=x; y_off[c]=y; z_off[c]=z; strcpy (w_off[c],w); c++; }
Ich hoffe mal das funzt so aber wenn ich in die Textdatei jetzt z.B. "1 2 3 test" reinschreibe, dann wird 1,2,3und 4 auch korrekt eingelesen aber statt test wird irgendwas unleserliches eingelesen. Weiß einer wodrans liegt? Danke shconmal für Antworten
-
Nee weiß ich nicht, aber was hälst du von C++ Filehandling?
-
fscanf Benutzt man doch nicht mehr in C++, oder!?
-
%4c heißt meines Wissens, daß Du einen Character einlesen willst. Die 4 stellt die Ausgabebreite ein oder sowas. Weiß das nicht mehr so genau.
Warum verwendest Du eigentlich scanf und nicht streams?
-
Mobb Deep schrieb:
fscanf Benutzt man doch nicht mehr in C++, oder!?
Korrekt, verschoben nach Ansi-C gehört das.
MfG MAV
-
da der OP wohl das ANSI C Forum vom C++ Forum unterscheiden kann, ist allerdings auch anzunehmen, dass er in C++ programmieren möchte und da es die C I/O Funktionen in C++ auch gibt, ist es kein problem, die frage auch hier zu stellen, wo er möglicherweise eine lösung bekommt, die mit C++ üblichen mitteln arbeitet.
wenn er aber verschoben werden will, mach ich das dann auch.