scanf EOF 和循环
scanf EOF and Loops
这是一项学校作业,但我的循环无法正常工作。我们必须使用 scanf 并在输入 EOF 时终止循环。这是有问题的代码部分:
{int
main(void){
char str[MAX];
while(scanf("%s", str) != EOF)
{
printf("\nEnter a String: ");
scanf("%s", str);
two_ele_subs(str);
}
return 0;
}
sscanf returns 读取变量的数量,在您的情况下只有一个,或者在文件结尾的情况下为 EOF(即:-1)。所以我建议你使用不同的方法,如下所示:
#include <stdio.h>
#define MAX 100
int main(void){
char str[MAX];
int retVal;
printf("\nEnter a String: ");
while((retVal = scanf("%s", str)) == 1 || retVal != EOF)
{
printf("\nEnter a String: ");
two_ele_subs(str);
}
return 0;
}
这是一项学校作业,但我的循环无法正常工作。我们必须使用 scanf 并在输入 EOF 时终止循环。这是有问题的代码部分:
{int
main(void){
char str[MAX];
while(scanf("%s", str) != EOF)
{
printf("\nEnter a String: ");
scanf("%s", str);
two_ele_subs(str);
}
return 0;
}
sscanf returns 读取变量的数量,在您的情况下只有一个,或者在文件结尾的情况下为 EOF(即:-1)。所以我建议你使用不同的方法,如下所示:
#include <stdio.h>
#define MAX 100
int main(void){
char str[MAX];
int retVal;
printf("\nEnter a String: ");
while((retVal = scanf("%s", str)) == 1 || retVal != EOF)
{
printf("\nEnter a String: ");
two_ele_subs(str);
}
return 0;
}