在C中正确使用EOF
|
我是编程的新手,我真的很想学习编写一个体面的程序。我不确定如何使用EOF。我的程序已编译,当我运行它时,除EOF部分外,它都能正常工作。该程序应该向主函数返回-1值(使用CTRL + z之后),并打印一条语句,然后关闭程序。 -1是与EOF -1本身不同的值。
#include <stdio.h>
//Function Declaration
int inputFunction (int num);
int main (void)
{
//Local Declarations
int num;
do
{
inputFunction (num);
if (num < 0 || num > 100)
inputFunction (num);
else
inputFunction (num);
}while (num != -1);
return 0;
}
int inputFunction (int num)
{
int rc;
do
{
printf(\"Enter an integer from 0 to 100: \\n\");
rc = scanf(\"%d\", &num);
{
if (rc != EOF)
{
if (num < 0 || num >100)
{
printf(\"ERROR\\n\");
return num;
}
else
{
return num;
}
}
else
{
num = -1;
return num;
}
}
}while (rc != EOF);
}
没有找到相关结果
已邀请:
3 个回复
娜拐赐巫潭
从未在
中赋值。您调用
,它返回一个值,但是您忽略了它返回的值。
剿畦缄饥小
咖哀烈
否则,当程序执行返回main()时,inputFunction()中的num值将丢失。这是您的程序未按预期执行的主要原因。 您的代码也存在一些逻辑问题。在main()的第一个if / else语句中,两个语句产生的结果完全相同。其他行为可能也不完全是您想要执行的操作。 我认为您可以通过用笔和纸计划您希望程序执行的操作而受益。一种方法是“绘制”出程序将使用箭头等(流程图)执行的操作。或者,您可以从目标的1-2个句子的描述开始,然后逐渐将其扩展为越来越多的细节,直到您有程序要执行的一系列任务,然后可以将其转换为代码。