【问题标题】:Writing to file issue写入文件问题
【发布时间】:2017-05-07 17:03:34
【问题描述】:

只是尝试写入文件,程序正在创建文件,但信息并未真正写入。传入的不是问题!

void writetofile (double *A, double *B, double *C, double *D, int N)
{
    int i;
    for (i = 0; i <= N; i++)
    {
        FILE * filePtr = fopen("Output.txt", "w");
        if (filePtr == NULL)
        {
            printf("File not found\n");
            exit(1);
        }
        // This must be where my problem is..
        fprintf(filePtr, "%f %f %f %f\n", A[i], B[i], C[i], D[i]);
    } 
}

【问题讨论】:

  • 你确定应该是i &lt;= N;吗?
  • 是的!问题不在循环中,它只是没有向文件写入任何内容! @SouravGhosh

标签: c arrays file pointers


【解决方案1】:

您在循环中打开文件,但您应该只打开一次,然后再写入。所以代码应该是这样的:

FILE * filePtr = fopen("Output.txt", "w");
int i;

if (filePtr == NULL) {
    fprintf(stderr, "File not found\n");
    exit(1);
}

for (i = 0; i < N; i++) {
    fprintf(filePtr, "%f %f %f %f\n", A[i], B[i], C[i], D[i]);
}

fclose(filePtr);

编辑:一般来说,写入文件的代码有以下步骤:

  • 以写入模式打开文件;
  • 确保文件可以打开;
  • 写入文件;
  • 关闭文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2016-08-15
    • 2011-09-15
    相关资源
    最近更新 更多