2012-08-26 71 views

回答

1
for (int i = 0; i < 3264; i++) 
{ 
    for (int j = 0; j < 2448; j++) 
     fprintf(fp, "%f", y[i*2448+j]); 
    putc('\n', fp); 
} 

殘留問題是不會有數字之間並無任何空格作爲寫。有各種方式來處理這個問題。我通常使用上的變化:

for (int i = 0; i < 3264; i++) 
{ 
    const char *pad = ""; 
    for (int j = 0; j < 2448; j++) 
    { 
     fprintf(fp, "%s%f", pad, y[i*2448+j]); 
     pad = " "; 
    } 
    putc('\n', fp); 
} 

如果你不喜歡的數組下標重新計算,你可以保持另一個變量,只是增加單調:

index = 0; 
for (int i = 0; i < 3264; i++) 
{ 
    const char *pad = ""; 
    for (int j = 0; j < 2448; j++) 
    { 
     fprintf(fp, "%s%f", pad, y[index++]); 
     pad = " "; 
    } 
    putc('\n', fp); 
} 
+0

謝謝你們!我現在用這些代碼排序。萬分感激 – jomizu

1

保持一個計數器來跟蹤寫在每行上的值,如下所示?

FILE *fp; 

fp=fopen("output.txt","w"); 

const int NUM_VALUES_PER_LINE = 2448; 
int count = 0; 
for(int i=0;i<7990272;i++) 
{ 
    fprintf(fp,"%f ",y[i]); 
    count++; 
    if (count == NUM_VALUES_PER_LINE) 
    { 
     fprintf(fp, "\n"); 
     count = 0; 
    } 
} 
fclose(fp); 
+0

感謝@JonathanLeffler,我糾正它。 – Vikdor

相關問題