在下面的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 回答

炎炎設(shè)計
TA貢獻1808條經(jīng)驗 獲得超4個贊
scanf使輸入流指向\n。對于您而言,這沒有什么區(qū)別:每次調(diào)用它時,它scanf都會一直移動直到找到下一個非空白字符。因此,給它10行name, a, b作為輸入將按預期工作。
但是考慮一下:
scanf("%d", &a);
fgets(str, 20, stdin);
fgets讀取直到它找到第一個換行符,所以str只會得到的值\n,并且fgets將不讀取輸入的下一行。
- 1 回答
- 0 關(guān)注
- 330 瀏覽
添加回答
舉報
0/150
提交
取消