2016-06-02 9 views
0

Ich versuche, eine Matrix in eine CSV zu drucken. arg [2] in diesem ist der Dateiname und ich kann überprüfen, dass das richtig funktioniert, da es die Datei erzeugt, aber nicht füllt. Ich schließe die Datei und versuche, sie zu leeren, aber es funktioniert nicht.C: Kann fprintf nicht zum Ausdrucken in Ausgabedatei

// Open the output/second file and write the contents of truncated DCT matrix into it 
outputfp = fopen(argv[2], "w"); 

if (outputfp == NULL) { 

fprintf(stderr, "Can't open output file %s!\n", argv[2]); 
exit(1); 
         } 
double hold = 0; 
printf("test\n"); 

for (i = 0, i < idx; i++;) { 
    for (j = 0, j < ARRAY_WIDTH; j++;) { 

    hold = test_write[i][j]; 

      fprintf(outputfp, "%.61f", hold); 
       if (j != ARRAY_WIDTH) { 

        fprintf(outputfp, ","); 
       } 
       else { 
        //continue; 
       } 
       fflush(outputfp); 
    } 
} 

fclose (outputfp); 
return 0; 
} 

Antwort

4

Dieser Zyklus

for (j = 0, j < ARRAY_WIDTH; j++;) { 

nie iteriert.

Falsche Platzierung von , und ; macht j++ die Iterationsbedingung. Da vor der allerersten Iteration j++ zu 0 ausgewertet wird, wird der Zyklus nie eingegeben. Anscheinend wolltest du schreiben:

+0

Danke, ich hatte ein Problem früher, wo ich die for-Schleife falsch eingegeben hatte, obwohl ich sie alle losgeworden war. Ich brauchte nur ein zweites Paar Augen. Ich habe es bereits repariert und funktioniert. Ich bin nur verwirrt, warum der Compiler sieht, was ich als gültigen c-Code hatte. – user3055889