Werte aus einer Datei lesen
-
Hi,
ich habe eine Datei in der folgendes steht
...
f 8424/6849/8702
...ich habe es bisher so versucht:
struct Triangle { int v1; int v2; int v3; };
t= new Triangle[triangleCount]; //Hier habe ich triangleCount bestimmt triangleCount=0; char line[100]; char filename[100]="data/test.obj"; FILE *fp; fopen_s(&fp,filename,"r"); while (!feof(fp)) { fgets(line,99,fp); if ( strncmp("f ",line,2) == 0) { char b; sscanf_s(line+1, "%d %c %d %c %d", &t[triangleCount].v1, &b, &t[triangleCount].v2, &b, &t[triangleCount].v3); triangleCount++; } }
Das Problem scheint irgendwie zu sein, dass zwischen den Zahlen und dem "/" kein Leerzeichen ist.
Wie bekomme ich es eingelesen?
-
sscanf_s(line+1, "%d/%d/%d", &t[triangleCount].v1, &t[triangleCount].v2, &t[triangleCount].v3);
schon so versucht?
-
Danke für die Idee.
Ich werds am nächsten Wochenende (wenn ich wieder Zeit für mein Hobby habe) ausprobieren.
-
Ich habe jetzt beide Versionen getestet:
Datei
...
f 8424/6849/8702
...Der Code jeweils davor ist wie im Post oben. Ich habe nur die sscanf Funktion verändert.
int test1,test2,test3; char a; char b; sscanf_s(line+1, "%d %c %d %c %d", &test1, &a, &test2, &b, &test3); cout << test1 << " "<<a<<" " << test2 <<" "<<b<< " "<< test3;
ergibt:
8424 / 0 @ 47
Also die erste Zahl und das erste Trennzeichen wird richtig gelesen. Der Rest ist irgendwie nicht nachvollziebar.
int test1,test2,test3; sscanf_s(line+1, "%d %d %d", &test1, &test2, &test3); cout << test1 << " " << test2 <<" "<< test3;
ergibt:
8424 0 0
Also die erste Zahl wird richtig gelesen. Der Rest ist 0, wird also nicht richtig gelesen
Hat noch Jemand eine Idee wie es gehen könnte?
-
Ich habs jetzt, falls es noch Jemanden interessiert:
sscanf_s(line+1, "%d / %d / %d", &test1, &test2, &test3);
-
MisterX schrieb:
Ich habs jetzt, falls es noch Jemanden interessiert:
sscanf_s(line+1, "%d / %d / %d", &test1, &test2, &test3);
U-Boot schrieb:
sscanf_s(line+1, "%d/%d/%d", &t[triangleCount].v1, &t[triangleCount].v2, &t[triangleCount].v3);
schon so versucht?
merkst was?