【问题标题】:writing integers to a file in c将整数写入c中的文件
【发布时间】:2013-10-22 10:57:20
【问题描述】:

我需要将整数打印到文件中。我将在下面发布代码。此代码的输出是一个空文件,它不包含整数。

FILE *out1;
out1 = fopen(outfile, "w");
if( out1 == NULL )
   {
      perror("Error while opening the output file.\n");
      exit(EXIT_FAILURE);
   }
int paste = noptr->no;
printf("message received %d\n", paste);
fprintf(out1,"%d\n", paste);
printf("printed!\n");
fclose(out1);

【问题讨论】:

  • 您的代码运行良好。仅用于out1 = fopen("outfile", "w");int paste=1000; 的测试检查。
  • 您确定您查看的是正确的输出文件吗?
  • 显示其余代码,尤其是定义和初始化 outfilenoptr 的地方。
  • 是的,输出文件是由程序自己创建的。我一直在编译之前将其删除。每次都会创建文件,但它是空的。
  • printf("noptr->no = %d\n",noptr->no);打印正确的输出,所以我认为问题与它无关。变量 outfile 的值为“out”,程序创建“out”,但它是空的。

标签: c file printf


【解决方案1】:

您的代码对我来说很好用。也许你的int 是 0,你在文本编辑器中打开你的文件。检查输出文件大小。

【讨论】:

  • 而且,在这种情况下,输出文件不应为空,而应包含“0”(当然还有换行符)。
  • 是的,我的错。所以唯一的建议是你写错了文件
  • 我如何检查输出文件的大小?
  • 在linux中你可以使用ls -l filename它显示文件大小和创建日期。在控制台中的窗口中 cd 到带有文件的目录并键入 dir
  • 我检查了大小,它是0。但它不应该是零,因为它是空的吗?创建日期是我上次编译程序的时间。
【解决方案2】:

如果您愿意使用 name outfile 写入文件,

out1 = fopen("outfile", "w");

【讨论】:

  • 如果这是错误,它甚至不会编译。 OP 得到输出。
  • outfile 是一个变量并且 printf("noptr->no = %d\n",noptr->no);打印正确的值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多