问题描述
对不起,我可能愚蠢的问题,但我想练循环了一下,这个就出来了idea.Basically它要求你在一个循环进入与否,当你在,就问你点事做。问题是,就在我进入循环将它传递给scanf函数之一,并等待输入之前打印printf的字符串两次。我不明白。
所有帮助是值得欢迎的!这里的code:
的#include<&stdio.h中GT;诠释的main()
{
烧焦检查='A';
烧焦int_check ='A';
INT B = 0;
的printf(想在去[Y或N] \\ n吗?);
scanf函数(%C,&安培;检查);
如果(检查=='Y'){
而(1){
的printf(等待:\\ n);
scanf函数(%C,&安培; int_check);
如果(int_check =='Q'){
的printf(你出去,再见\\ n!);
打破;
};
};
}否则如果(检查=='N'){
的printf(你不是,再见\\ n!);
}其他{
的printf(请输入'Y'或'N'\\ n);
};
返回0;
}
如果您输入到终端如下:
X
第一循环将看到 X
第二个循环将会看到一个换行符。
要解决这个最简单的方法是使用sscanf和函数getline。
Sorry for the probably dumb question, but i wanted to practice loops a bit and came out with this idea.Basically it ask you to enter or not in a loop and when you're in, it ask you for something to do.The problem is that just after i enter the loop it prints two times the printf string before passing to the scanf one and waiting for an input. I can't figure it out.All help is welcome! Here's the code:
#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;
}
If you input onto a terminal the following:
x
The first loop will see an x
The second loop will see a newline character.
The easiest way to work around this is to use sscanf and getline.
这篇关于空调回路串打印两次? (使用scanf函数(QUOT;%C&QUOT;))的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!