我正在尝试为编程作业格式化以空格分隔的用户输入。该输入基本上由任意数量的表达式组成,包括“L 整数 整数 整数 整数”和“C 整数 整数 整数”等。例如:“L 1 1 5 7 C 4 5 3”。到目前为止,我已经成功提取了初始字符的整数,并可以使用scanf函数迭代遍历字符串。
char a;
while(scanf("%c", &a) == 1){
if(a == 'C'){
int inputX, inputY, inputR;
scanf("%d %d %d", &inputX, &inputY, &inputR);
printf("%d %d %d\n", inputX, inputY, inputR);
}
else if(a == 'L'){
int x1, y1, x2, y2;
scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
printf("%d %d %d %d\n", x1, y1, x2, y2);
}
}
不幸的是,尽管这样输出所需的整数,但循环(和用户输入提示)并没有终止。
请问有人能告诉我为什么会出现这种情况吗?
EOF
(在Linux中通过Ctrl+D,在Windows中通过Ctrl+Z)? - timrauEOF
会在程序运行时结束输入,但我也希望它能在按下Enter
键时终止。 - Julian Laval