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.


Anmelden zum Antworten