问一个关于getchar函数的问题
函数如下:#include<stdio.h>
void display (char ch,int lines,int width);
int main(void)
{
int ch;
int rows,cols;
printf("enter a character and two intergers:\n");
while((ch=getchar())!='\n')
{
if(scanf("%d%d",&rows,&cols)!=2)
break;
display (ch,rows,cols);
while (getchar()!='\n') //请问这个while应该怎么解释?
continue;
printf("enter another character and two intergers;\n");
printf("enter a newline to quit.\n");
}
printf("bye.\n");
return 0;
}
void display (char cr,int lines,int width)
{
int row,col;
for(row=1;row<=width;row++)
{
for(col=1;col<=width;col++)
putchar(cr);
putchar('\n');
}
}
对于第二个while循环有点理解不来,while (getchar()!='\n') continue;是不是可以这么解释当getchar没有读到换行键时,while循环进入到continue。
但是我每次输入完程序都会有一个换行键留在队列之中,正常来说第二轮迭代的时候第一个读到的符合就应该是换行键。
那岂不是直接进入while((ch=getchar())!='\n')程序判定。还是说这个判定在while (getchar()!='\n') continue;这个函数来执行。