TXT-Datei bearbeiten



  • Hallo,

    ich sitze gerade an einem C-Programm, das eine Txt-Datei bearbeiten soll. Da das mein erstes Programm in C ist, sind mit Sicherheit allerhand Anfängerfehler drin, die ihr auf den ersten Blick erkennt. 🙂
    Irgendwelchen Anfängern immer das Gleiche zu erklären, ist bestimmt nicht besonders spannend... ich weiß daher jeden Tipp wirklich zu schätzen!!! 😉

    Mein erstes Problem ist das Einlesen der Datei. Folgenden Code hab ich dafür bisher zusammengebastelt:

    char *figures="output.txt";
      ifstream in(figures.c_str());
    
      char *c;
      string Puffer;
      while(!in.eof())
      {
        c = in.get();
        Puffer+= c;
      }
      in.close();
      getchar();
    

    Als nächstes muss der "String" zu nem Array werden...

    int Matrix[11000][2];                   
      int x=0;                               
      int z=0;                               
    
      c * pch;
      pch = strtok (str," ");                 
      while (pch != NULL)
      {
        Matrix[x][z]=pch;                     
        z=z+1;    
        Matrix[x][z]=pch;                    
        x=x+1;
        pch = strtok (NULL, " ,.");
      }
      return 0;
    

    Das Bearbeiten krieg ich auf die Reihe, aber das Abspeichern schon wieder nicht mehr:

    x=0;
      z=0;
    
      lstrcpy (figures,"______ x ______   ______ z ______"); 
      strcat (figures, "\n");
    
      for ( count=1 ; count <= 11000; count++) 
      { 
        strcat (figures, Matrix[x][z]);                
        z=z+1;
        strcat (figures, "   ");                       
        strcat (figures, Matrix[x][z]);               
        x=x+1;
        strcat (file, "\n");                          
      }
    
      FILE * datei;
      datei=fopen("test.txt","w");
      fwrite(file, 1, strlen(file), datei);
      fclose(datei);
    

    Wie ihr euch denken könnt, hab ich viel davon aus irgendwelchen Tutorials zusammenkopiert und daher z.T. keinen Plan, was ich da geschrieben hab. Nicht böse sein, wenn die Fehler zu dumm sind 😕
    Eigentlich würd ich schon gerne verstehen, was mein Programm genau macht - wenn jemand da draussen also zu viel Zeit hat und mir seine Korrekturen auch noch erklären würde, wär das echt super 😃



  • wow, wusste garnicht, dass man über c streams und c++ streamklassen einfach mischen kann 😉

    //edit
    fang besser ganz von vorne an, das zusammenkopieren bringts nicht, selberschreiben führt zum ziel(und dieses programm kannste innerhalb einer Woche selber schreiben, wenn du heute mit dem lernen anfängst)



  • otze schrieb:

    wow, wusste garnicht, dass man über c streams und c++ streamklassen einfach mischen kann 😉

    //edit
    fang besser ganz von vorne an, das zusammenkopieren bringts nicht, selberschreiben führt zum ziel(und dieses programm kannste innerhalb einer Woche selber schreiben, wenn du heute mit dem lernen anfängst)

    Es wird doch wohl nicht alles falsch sein... 😞

    Wo hab ich denn c++ streamklassen verwendet?



  • Habs nur kurz überflogen und mir sind einige Fehler aufgefallen:

    pch = strtok (str," ");                 
      while (pch != NULL) 
      { 
        Matrix[x][z]=pch;
    

    Kann nicht gehen. Du kannst einem int keinen char* zuweisen.

    strcat (figures, Matrix[x][z]);
    

    Geht auch net. Einem char* kannst du keinem int zuweisen 😉

    wow, wusste garnicht, dass man über c streams und c++ streamklassen einfach mischen kann

    Wusste garnicht, dass es in C Streams gibt 😉



  • Super, danke!!!! Das ist doch mal eine konstruktive Hilfe 🙂

    Dann versuch ich jetzt mal herauszubekommen, wie man chars in ints umformt...

    Hat noch jemand einen Tipp?



  • interpreter schrieb:

    Wusste garnicht, dass es in C Streams gibt 😉

    und was is mit den filstreams(fopen, fclose,fwrite,fread)?



  • otze schrieb:

    interpreter schrieb:

    Wusste garnicht, dass es in C Streams gibt 😉

    und was is mit den filstreams(fopen, fclose,fwrite,fread)?

    Das sind keine klassischen Streams. Die Funktionen arbeiten einfach mit Dateideskriptoren.



  • hä? Und was machen die C++ Stream-Klassen?

    Natürlich sind C-Streams auch ganz klassische Ströme.



  • interpreter@noPassword schrieb:

    otze schrieb:

    interpreter schrieb:

    Wusste garnicht, dass es in C Streams gibt 😉

    und was is mit den filstreams(fopen, fclose,fwrite,fread)?

    Das sind keine klassischen Streams. Die Funktionen arbeiten einfach mit Dateideskriptoren.

    und die c++ streamklassen benutzen dann diese Dateidescriptoren und werden plötzlich zu nem input/output stream, sehr logisch :p


Anmelden zum Antworten