很抱歉这个可能很愚蠢的问题,但我想练习一下循环并提出了这个想法。基本上它会要求你进入或不进入循环,当你进入时,它会要求你做一些事情。问题就在我进入循环之后,它会打印两次 printf 字符串,然后传递给 scanf 字符串并等待输入。我想不通。
欢迎所有帮助!这是代码:
#include <stdio.h>
int main()
{
char check = 'a';
char int_check = 'a';
int b = 0;
printf("want to go in? [y or n]\n");
scanf("%c",&check);
if ( check == 'y') {
while (1){
printf("Waiting: \n");
scanf("%c",&int_check);
if ( int_check == 'q'){
printf("You're out, bye!\n");
break;
};
};
} else if ( check == 'n'){
printf("You're not in, see ya!\n");
}else {
printf("Please, type 'y' or 'n'\n");
};
return 0;
}
如果您在终端上输入以下内容:
x
第一个循环将看到x
第二个循环将看到一个换行符。
解决此问题的最简单方法是使用 sscanf 和 getline。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)