如何在C语言中从测试用例文件中读取输入

如何在C语言中从测试用例文件中读取输入,c,C,目前我参加了NPTEL课程。在那里我需要做c程序作为作业 Q设置的格式如下:- 编写一个程序,读取0到100之间的数字,直到遇到-1。打印遇到-1之前读取的所有整数的总和 输入: 由空格分隔的整数序列。在-1之后可能还有其他整数。 如何从测试用例文件中读取输入?plz帮助 我使用了以下代码:- while((n=scanf("%d",&n1))!=EOF) { printf("%d",n); } 如果测试用例1有5个输入,循环将正确迭代5次。如果测试用例2在迭代2次时有2个输入。但它无

目前我参加了NPTEL课程。在那里我需要做c程序作为作业

Q设置的格式如下:-

编写一个程序,读取0到100之间的数字,直到遇到-1。打印遇到-1之前读取的所有整数的总和

输入: 由空格分隔的整数序列。在-1之后可能还有其他整数。

如何从测试用例文件中读取输入?plz帮助

我使用了以下代码:-

while((n=scanf("%d",&n1))!=EOF)
{
printf("%d",n);
}

如果测试用例1有5个输入,循环将正确迭代5次。如果测试用例2在迭代2次时有2个输入。但它无法读取输入。请帮忙

您正在打印的
n
是读取的项目数。您需要打印
n1

编辑:


您对
while
循环的检查不正确。您需要检查读取的值,即
n1
,但再次使用n值检查EOF。您还应该检查-1,因为这正是您想要的,对吗?

使用所有警告和调试信息编译(例如,
gcc-Wall-g
)。了解如何使用调试器。首先阅读scanf的文档,特别是关于其返回值的部分。
n
是项目数(即数字),而不是字符数,请阅读。是。这就是我想写的。谢谢你的更正,不仅如此,你对伪循环测试只字未提。OP需要检查输入错误(scanf返回EOF)、文件结尾(scanf返回0)以及输入中的-1。