如何將y [7990272]值的數組寫入文本文件(使用fopen()
函數打開)以2448x3264的順序排列(因此文本文件中的每一行都有2448個值)。如何將y [7990272]值的數組寫入文本文本每行中具有2448個值的文本文件
FILE *fp;
fp=fopen("output.txt","w");
for(int i=0;i<7990272;i++)
{
fprintf(fp,"%f\n",y[i]);
}
fclose(fp);
如何將y [7990272]值的數組寫入文本文件(使用fopen()
函數打開)以2448x3264的順序排列(因此文本文件中的每一行都有2448個值)。如何將y [7990272]值的數組寫入文本文本每行中具有2448個值的文本文件
FILE *fp;
fp=fopen("output.txt","w");
for(int i=0;i<7990272;i++)
{
fprintf(fp,"%f\n",y[i]);
}
fclose(fp);
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);
}
保持一個計數器來跟蹤寫在每行上的值,如下所示?
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);
感謝@JonathanLeffler,我糾正它。 – Vikdor
謝謝你們!我現在用這些代碼排序。萬分感激 – jomizu