我正在尝试将数据写入文件但它没有出现,但我知道程序正在完成。我建立了一个可写文件,从命令参数
获取名称 FILE *outFilePtr;
然后我通过以下方式创建文件:
outFilePtr=fopen(outFileString,"w"); //outFileString is the name of the file from command
现在我尝试打印到这个扩展名为.mc的文件:
fprintf(outFilePtr,"%s\n","1001") //example string
创建文件后不会写任何内容。这可能是一个愚蠢的问题,但你不能写机器代码文件的字符串?如果是这种情况,我正试图找到解决这个问题的方法。
答案 0 :(得分:0)
你应该检查fopen和fprintf的结果。这对我有用:
#include <stdio.h>
#include <errno.h>
int
main(int argc, char *argv[])
{
FILE *outFilePtr;
outFilePtr = fopen("asdf.mc", "w");
if(!outFilePtr) {
perror("Couldn't open it");
fprintf(stderr, "errno: %d\n", errno);
exit(-1);
}
if(fprintf(outFilePtr, "%s\n", "1001") < 0)
{
fclose(outFilePtr);
perror("Couldn't write to it");
fprintf(stderr, "errno: %d\n", errno);
exit(-1);
}
fclose(outFilePtr);
}
如果打开文件时出现问题(权限等),perror将显示该文件。例如,对文件名使用空字符串在$ machine:
窗口中给出了这个Couldn't open it: Invalid argument
errno: 22
如果我在fprintf之前关闭outFilePtr,则会显示此错误:
Couldn't write to it: Bad file descriptor
errno: 9
答案 1 :(得分:0)
请检查您在fprintf()之后关闭文件(使用fclose(fptr))..