2016-03-19 13 views
0

Drucken in zwei verschiedenen Dateien mit dem gleichen Code für beide Dateien. Nichts wird in der zweiten Datei (my_rank1.out), während in der anderen Datei geschrieben, alles richtigNichts in eine Datei in c schreiben

FILE *my_pointer; 
    FILE *my_rank_ptr; 
    for(int name = 1;name<=5;name++) 
    { 
     //read(name) 
     char filename[21]; 
     sprintf(filename, "port%d.out", name); 

     char temp_file[21]; 
     sprintf(temp_file, "my_rank%d.out", name); 


     my_rank_ptr = fopen(temp_file,"w"); 
     my_pointer = fopen(filename,"w"); 


     fprintf(my_rank_ptr, "lambda\tcrossprob\tmutprob\tbasic_seed\trun\tseed\t"); 
     for(int i=1;i<=nstock;i++) 
     { 
     fprintf(my_rank_ptr, "var%d\t",i); 
     } 
     fprintf(my_rank_ptr, "fitness value\n"); 



     fprintf(my_pointer, "lambda\tcrossprob\tmutprob\tbasic_seed\trun\tseed\t"); 
     for(int i=1;i<=nstock;i++) 
     { 
     fprintf(my_pointer, "var%d\t",i); 
     } 
     fprintf(my_pointer, "fitness value\n"); 

//Some code follows this 
     fclose(my_pointer); 
     fclose(my_rank_ptr); 

} 
+0

read() ist kein Standard-C-Funktion, brauchen wir Ihre Umgebung und alle Funktionen kennen, die Sie writen sind und zu verwenden. – 12431234123412341234123

+0

Funktioniert auch nach dem Kommentieren nicht lesen() –

+1

Sie suchen nicht nach Fehlern beim Öffnen der Dateien. Das wäre ein guter Anfang. Ebenso mit den Schreibweisen. –

Antwort

0

hinzufügen geschrieben wird nach jedem

fprintf(my_rank_ptr .... 

ein

fprintf(my_pointer 

als Sie möchten in zwei Dateien das gleiche Zeug schreiben

0

Wie bereits erwähnt überprüfen Sie in Kommentaren die Ausgabe Ihrer -Anweisung?

... 
my_rank_ptr = fopen(temp_file,"w"); 
if(!my_rank_ptr) return -1; 
my_pointer = fopen(filename,"w"); 
if(!my_pointer) return -1; 
... 

Wenn Ihre Datei Zeiger nicht NULL sind, dann der Einfachheit halber könnte man
alle printf Aussagen ordnen die gleiche Schleife zu verwenden:

 fprintf(my_rank_ptr, "lambda\tcrossprob\tmutprob\tbasic_seed\trun\tseed\t"); 
     fprintf(my_pointer, "lambda\tcrossprob\tmutprob\tbasic_seed\trun\tseed\t"); 
     for(int i=1;i<=nstock;i++) 
     { 
     fprintf(my_rank_ptr, "var%d\t",i); 
     fprintf(my_pointer, "var%d\t",i); 
     } 
     fprintf(my_rank_ptr, "fitness value\n"); 
     fprintf(my_pointer, "fitness value\n"); 
0

Sie können eine Erlaubnis Fehler bekommen, wenn sie versuchen zu Öffnen Sie die Datei zum Schreiben. Sie sollten immer überprüfen, ob der fopen() - Aufruf erfolgreich war oder nicht, bevor Sie versuchen, in eine Datei zu schreiben.

 my_rank_ptr = fopen(temp_file,"w"); 

if (! My_rank_ptr) // zu öffnen, ist fehlgeschlagen ...