将字符串写入.mc文件

时间:2013-09-20 19:59:29

标签: c file-io

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

获取名称
  FILE *outFilePtr;

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

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

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

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

创建文件后不会写任何内容。这可能是一个愚蠢的问题,但你不能写机器代码文件的字符串?如果是这种情况,我正试图找到解决这个问题的方法。

2 个答案:

答案 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))..