-2

我正在尝试将数据写入文件并且它没有出现,但我知道程序正在完成。我建立了一个可写文件,从命令参数中获取名称

  FILE *outFilePtr;

然后我通过以下方式创建文件:

outFilePtr=fopen(outFileString,"w"); //outFileString is the name of the file from command

现在我尝试打印到这个扩展名为 .mc 的文件:

fprintf(outFilePtr,"%s\n","1001") //example string

该文件被创建并且没有写入任何内容。这可能是一个愚蠢的问题,但您不能将字符串写入机器代码文件吗?如果是这种情况,我正在尝试找到解决此问题的方法。

4

2 回答 2

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 将显示它。例如,使用空字符串作为文件名在 window$ 机器上给了我这个:

Couldn't open it: Invalid argument
errno:  22

如果我在 fprintf 之前关闭 outFilePtr,则会显示此错误:

Couldn't write to it: Bad file descriptor
errno:  9
于 2013-09-20T20:17:48.737 回答
0

请检查您是否在 fprintf() 之后关闭了文件(使用 fclose(fptr))..

于 2013-09-20T21:43:37.123 回答