在下面的C代码中:char name[20];int a;int b;for(i=0;i<10;i++){ printf("\nEnter name, a & b: "); scanf("%s %d %d",name,&a,&b);}不scanf读的'\n',在年底进入了scanf()在第一次迭代,为第二次迭代的输入
1 回答
炎炎设计
TA贡献1808条经验 获得超4个赞
scanf使输入流指向\n。对于您而言,这没有什么区别:每次调用它时,它scanf都会一直移动直到找到下一个非空白字符。因此,给它10行name, a, b作为输入将按预期工作。
但是考虑一下:
scanf("%d", &a);
fgets(str, 20, stdin);
fgets读取直到它找到第一个换行符,所以str只会得到的值\n,并且fgets将不读取输入的下一行。
- 1 回答
- 0 关注
- 314 浏览
添加回答
举报
0/150
提交
取消