C:多扫描,当我为一个扫描输入一个值时,它跳过了第二个扫描我有这段代码(省略了一些函数,因为逻辑是作业的一部分):#include <stdio.h>int main(){
char c = 'q';
int size;
printf("\nShape (l/s/t):");
scanf("%c",&c);
printf("Length:");
scanf("%d",&size);
while(c!='q')
{
switch(c)
{
case 'l': line(size); break;
case 's': square(size); break;
case 't': triangle(size); break;
}
printf("\nShape (l/s/t):");
scanf("%c",&c);
printf("\nLength:");
scanf("%d",&size);
}
return 0; }前两个Scanf的工作很棒,没有问题,一旦我们进入while循环,我就遇到了一个问题,当您被提示输入一个新的形状字符时,它会跳到printf的长度,然后等待从其中获取输入的字符,然后是循环下一次迭代中的小数点。预循环迭代:Scanf:形状。伟大的作品长度。没问题循环1。Scanf:形状。跳过这个长度。问题,这个扫描映射到形状焦。循环2Scanf:形状。跳过这个长度。问题,这个扫描器现在映射到int大小。它为什么要这么做?
3 回答
白猪掌柜的
TA贡献1893条经验 获得超10个赞
scanf("%c")
15
1
5
scanf("%d")
1
5
15
scanf("%c")
scanf("%d")
fgets
getchar()
scanf("%d")
.
泛舟湖上清波郎朗
TA贡献1818条经验 获得超3个赞
scanf()
%c
scanf()
fgets()
sscanf()
" %c"
"%c"
scanf()
scanf()
fscanf()
fgets()
sscanf()
scanf()
scanf()
慕无忌1623718
TA贡献1744条经验 获得超4个赞
void seek_to_next_line( void ){ int c; while( (c = fgetc( stdin )) != EOF && c != '\n' );}
- 3 回答
- 0 关注
- 516 浏览
添加回答
举报
0/150
提交
取消