C 将数字从文件复制到数组时使用printf时出现问题

C 将数字从文件复制到数组时使用printf时出现问题,c,printf,scanf,arr,C,Printf,Scanf,Arr,我的代码有这个问题。Im使用for循环将我打开的文件中的一些数字复制到数组中。同时,我在fscanf语句之后放了一个printf语句,以查看我想要的值是否真的输入了arr。这样做很好,只是在完成时在数组的末尾放了一个额外的数字。我不明白为什么会这样。起初,我认为我在文件中使用了错误的元素数,或者我在使用malloc时弄糟了,但是这些都很好。谁能告诉我出了什么问题吗。我不能分享代码,直到一个特定的日期,因为我是一个学生,这将被视为作弊 编辑:下面是代码中正在发生的部分的链接。语言是C。代码用于读取

我的代码有这个问题。Im使用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\u name而不是int-char*filename


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

  • 函数原型中存在语法错误:
    int char*filename
    应仅为
    const char*filename
  • 您不需要测试
    fopen()
    的返回值。如果程序无法打开文件,您将有未定义的行为
  • 您不需要测试
    fscanf()
    是否成功将文件内容转换为整数。您应该验证它返回的
    1
    ,如果没有,则处理错误
传递给函数的值的数量很可能超过文件中实际存在的值的数量。在这种情况下,目标数组的内容不会超过上次读取的值,并且
printf
输出出现的任何内容


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

你的老师可能认为与班上其他学生共享代码是作弊。无论如何,如果使用不同的打印方法会发生什么?(我不知道你在用什么语言,所以我不能给你一个选择)不幸的是,没有代码很难帮助你。这就像我让你告诉我我举了多少个手指,但却不让你看到我的手。考虑创建一个小的测试用例来封装你的问题,它不会影响你的项目。我已经编辑了这个问题,在你可以粘贴代码文本而不是图像的情况下回答这些问题。不管怎样,我们更喜欢这样。我会的,但就像我说的,我现在还不能,我把它放在别人让我放一段代表我所寻找的东西的片段中。语法实际上是正确的。这是一个函数,在通过将文件内容转换为整数获得计数后调用,如果返回1,则应计算该数字。在某些情况下,我们应该使用一些规范。在这种情况下,我不能使用const char*文件名。很抱歉,我坚持认为,
int char*文件名
是一个语法错误。你能展示一下在你的代码中是如何调用函数
ArrayFiller
的吗?对不起,我知道你们指的是什么了,这是我输入的错误。代码中不是这样的。