只是试图写入文件,程序正在创建文件,但实际上并没有将信息写入文件。传入什么不是问题!
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/