einlesen und schreiben in die gleiche Datei



  • Hi,

    hab ein riesen Problem kuz vor meiner Abgabe!
    Und zwar muss ich von einer Datei einlesen und wieder in dieselbe, die neuen Werte, ausgeben. Nur es funktioniert nicht bei mir!!!

    Bitte um Hilfe!!

    int main(int argc, char *argv[])
    {
     	FILE *input;	
     	char filename[20];
      int error_code = 0;
    
      if (argc < 2){  
    
          printf("Welche Datei wollen sie öffnen : ");
          scanf("%s",filename);
    
          input = fopen(filename ,"r+");
          if(input != NULL)
             getFile(input,error_code);
          else {
             printf("Fehler beim Öffnen von %s\n",filename);
             return EXIT_FAILURE;
    
          }
       }  
    
      else
      {
        input = stdin;
        if (argc == 2)
        {
          if ((input = fopen(argv[1],"r+")) != NULL)
          {
            getFile(input,error_code); 
          }
    
        }
    
        }
      writeData(input);
      return 0;
    
    }
    
    void writeData(FILE* input)
    {
     int d = 0,v = 0;
    
     fprintf(input,"%s ",header.type);
     fprintf(input,"%s ",header.comment);
     fprintf(input,"%d ",header.width);
     fprintf(input,"%d ",header.height);
     fprintf(input,"%d ",header.greyscale);
    
     while(d < header.height)
     {
      for (v = 0; v < header.width; v++)
      {
       fprintf(input,"%d ",data.converted[d][v]);   
      }
     d++;
     }
     fclose(input);
    }
    


  • Was funktioniert nicht? Oder besser gefragt, was ist das erwartete Ergebnis und was ist das momentane Resultat?

    Was macht getPGMFile()?

    Wenn getPGMFile() die Datei vollständig auslest, hast du dann auch dran gedacht, bevor du wieder reinschreibst, dass du den Dateizeiger auf den Anfang der Datei zurücksetzt??



  • oh wie setze ich den auf den Anfangswert zurück? ja also getPGMFile liest alles von der Datei ein und die neuen Daten sollen drüber geschrieben werden.

    Also wenn ich w+ nehme bei fopen dann ist die Datei am Schluss 0 Byte groß.
    Bei r+ schauts aus, als würde gar nichts in die Datei geschrieben werden.

    mfg

    edit: Habs schon!! Danke funzt alles!!

    Big THX!!


Anmelden zum Antworten