我有以下代码,但为什么第二个 while 循环没有运行?是否有任何更改以使其运行?
#include<stdio.h>
int main() {
int a,b,c,d,e,f;
while(scanf("%d,%d,%d",&a,&b,&c)==3){
printf("ok\n");
}
while(scanf("%d,%d,%d",&d,&e,&f)==3){
printf("OK\n");
}
return 0;
}
我的输入是
1,2,3
1,5,7,4,8,7
7,8,9,...
答案 0 :(得分:1)
假设您在第一个 scanf()
中为 while
输入“1,5,7,4,8,7
scanf("%d,%d,%d", &a, &b, &c);
将 1 读入 a
,将 5 读入 b
,将 7 读入 c
并返回 3
,将 ",4,8,7<ENTER>"
保留在输入缓冲区中.
在第二次循环中,scanf 找到逗号并返回 0
,它终止了 while
。
紧接着,在第 2 个 while
中,第 2 个 scanf()
尝试将 ",4,8,7<ENTER>"
转换为整数,但未能立即返回 0
并终止 {{1} }.