c - 写入文件问题

标签 c arrays file pointers

只是试图写入文件,程序正在创建文件,但实际上并没有将信息写入文件。传入什么不是问题!

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]);
    } 
}

最佳答案

您在循环内打开文件,但您应该只打开一次,即在写入之前。所以代码应该是这样的:

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);

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

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

关于c - 写入文件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43834262/

相关文章:

c - 函数调用时指针更改大小(使用 gdb 检查)

python - 从不同的数组和数组/numpy 模块生成数组?

python - 为什么 `for` 在 Python 列表上比在 Numpy 数组上更快?

c - 在 Linux 内核中启用调度程序统计信息

java - AES rijndael 在 c 和 java 之间加密

c++ - 如何在 C++ 中修复动态数组中的 "Out of Memory"

java - 适用于 .mkv 文件类型的 JMF 插件?

java - 如何从菜单项单击的目录加载下一个项目?

linux - 比较大文件

c - C 中的 "UDP datagrams only"套接字