在将数字从文件复制到数组时使用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。
答案
您的代码中存在多个问题:
- 函数原型中存在语法错误:
int char* filename
应该只是const char *filename
。 - 你不测试
fopen()
的返回值。如果程序无法打开文件,您将有未定义的行为。 - 你不测试
fscanf()
是否成功将文件内容转换为整数。你应该验证它返回1
并处理错误,如果没有。
传递给函数的值很可能超过文件中实际存在的值的数量。在这种情况下,目标数组的内容不会更改超出读取的最后一个值,并且printf
会输出那里发生的任何内容。
您应该将整个程序作为文本发布在您的问题中,以便进行更完整的分析和可能的更正。
以上是关于在将数字从文件复制到数组时使用printf的问题的主要内容,如果未能解决你的问题,请参考以下文章
我在将字符串从 .txt 文件添加到列表时遇到问题,即使在尝试使用 .append 之后也是如此
在将数据从 S3 复制到 redshift 时,我遇到了以下错误: