在将数字从文件复制到数组时使用printf的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在将数字从文件复制到数组时使用printf的问题相关的知识,希望对你有一定的参考价值。

我的代码有这个问题。我正在使用for循环从我打开的文件中复制一些数字。同时,我在fscanf语句后面放了一个printf语句,看看我想要的值是否真的进入了arr。这样可以正常工作,除了它在数组结束时添加一个额外的数字。我不明白为什么会这样。起初,我以为我使用的是文件中元素数量的错误计数,或者我在使用malloc时搞砸了,但这些都完全没问题。任何人都可以告诉我什么是错的。我不能分享代码,直到特定日期因为我是学生,它将被视为作弊。

编辑:下面是代码中发生的一段代码的链接。语言是C.代码是从一个文件中读取数字1 7 5 6 8 3 9 4 2 10但是它总是读取1 7 5 6 8 3 9 4 2 10 1

编辑:在函数声明中我的意思是char * file_name而不是int char * filename。

the image but i cant embed yet so a link

答案

您的代码中存在多个问题:

  • 函数原型中存在语法错误:int char* filename应该只是const char *filename
  • 你不测试fopen()的返回值。如果程序无法打开文件,您将有未定义的行为。
  • 你不测试fscanf()是否成功将文件内容转换为整数。你应该验证它返回1并处理错误,如果没有。

传递给函数的值很可能超过文件中实际存在的值的数量。在这种情况下,目标数组的内容不会更改超出读取的最后一个值,并且printf会输出那里发生的任何内容。

您应该将整个程序作为文本发布在您的问题中,以便进行更完整的分析和可能的更正。

以上是关于在将数字从文件复制到数组时使用printf的问题的主要内容,如果未能解决你的问题,请参考以下文章

在将文件从捆绑包复制到文档路径时显示进度条[重复]

当试图输出一个整数时,它会输出一个数字数组到一个文件

我在将字符串从 .txt 文件添加到列表时遇到问题,即使在尝试使用 .append 之后也是如此

在将数据从 S3 复制到 redshift 时,我遇到了以下错误:

我在将数据从 XML 文件移动到具有 CDATA 节点类型的 ARRAY 时遇到问题

printf() 十六进制格式