gpt4 book ai didi

C:多个 scanf,当我输入一个 scanf 的值时,它会跳过第二个 scanf

转载 作者:太空狗 更新时间:2023-10-29 16:27:17 28 4
gpt4 key购买 nike

<分区>

我有这段代码(由于逻辑是家庭作业的一部分而省略了功能):

#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 of Length 并等待从那里获取一个字符的输入,然后在循环的下一次迭代中获取一个小数。

预循环迭代:

Scanf:形状。效果很好
scanf:长度。没问题

循环 1。

Scanf:形状。跳过这个
scanf:长度。问题,这个 scanf 映射到形状 char。

循环 2
scanf:形状。跳过这个
scanf:长度。问题是,这个 scanf 现在映射到 int 大小。

为什么要这样做?

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com