[英]Cannot write to file in C program
我正在尝试将结果写入输出文件,并在 Mac 终端上运行此 C 程序。 我已经通过直接写入终端来检查程序的所有部分是否正常工作,但是当我尝试写入文件时,没有任何反应。
“写入文件”行在每次迭代时写入,但 outputdata.txt 文件没有任何反应。
我已经更改了权限,并且可以直接从终端写入此文件。 但是,使用以下代码不起作用。
#define OUTPUTFILE "outputdata.txt"
FILE *ofp;
char ofile_name[50] = OUTPUTFILE;
ofp = fopen(ofile_name, "r");
for (p = 1; p <= NumPattern ; p++) {
for (k = 1 ; k <= numnodes_out ; k++) {
fprintf(ofp, "%f\n", output_nodes[p][k]);
fprintf(stdout, "Writing to file\n");
}
}
fclose(ofp);
您正在以读取模式打开文件,请参阅https://linux.die.net/man/3/fopen 。
如果要写入文件,则必须使用支持写入的模式打开文件,例如: fopen(ofile_name, "w")
。
如果您只想写入文件,您的主要选择是:
此外,如果您查看前面提到的链接,您应该注意到如果文件未成功打开,该函数可能会返回 null。 因此,在对其进行操作之前,您应该检查 fopen 返回的 FILE* 是否不为空。
#define OUTPUTFILE "outputdata.txt"
FILE *ofp;
char ofile_name[50] = OUTPUTFILE;
ofp = fopen(ofile_name, "r");
if (ofp) { // NOTE: added NULL check.
for (p = 1; p <= NumPattern ; p++) {
for (k = 1 ; k <= numnodes_out ; k++) {
fprintf(ofp, "%f\n", output_nodes[p][k]);
fprintf(stdout, "Writing to file\n");
}
}
fclose(ofp);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.