c语言中关于while语句

来源:百度知道 编辑:UC知道 时间:2024/05/18 01:43:39
do
{
……

printf("Continue?(Y/N):");
cont=getchar();

while (getchar()!='\n')
;
}while(cont!='N'&&cont!='n');

return 0;

在while (getchar()!='\n')
;

while后面空语句,直接加;是什么意思
如果输入'\n'怎么处理
输入别的又怎样处理
(接上个问题补充)
int MakeNumber(void)
{
int number;
number=(rand()%(MAX_NUMBER-MIN_NUMBER+1))+MIN_NUMBER;

assert(number>=MIN_NUMBER && number<=MAX_NUMBER);

return number;
}

void GuessNumber(int number)
{
int guess;
int times=0;
assert(number>=MIN_NUMBER && number<=MAX_NUMBER);

do{
times++;

printf("Round %d:",times);
scanf("%d",&guess);

while(getchar()!='\n')
;

if (guess>number)

目的是为了清除缓冲区,避免残留在IO流中的字符(串)对之后的操作有什么影响.

'\n'代表回车;

while (getchar()!='\n');
是一直取字符串。只到回车才停止。

while(条件表达式);代表一个循环,里面的条件表达式成立的话就一直循环,如果不成立就马上退出循环.
例如:while(a<1);当a<1的时候循环就一直循环下去.
while(a<1){ a++;}后面跟了一个循环体,每循环一次,循环体就运行一次.
getchar()表示你可以输入一个字符.
while(getchar()!='n');
相当于while(a!='\n'){a=getchar();}
意思是让你一直可以输入字符,当你按下回车的时候,退出循环,停止输入,

while (getchar()!='\n')
这句话的意思就是说,你输入的字符只要不是回车,就都可以被读取,如果是回车,这个循环就此中止