[求助] 循环语句中getchar和scanf混合使用时的问题
code:7 while ((ch=getchar())!='\n')
8 {
9 if(scanf ("%d %d",&rows,&cols)!=2) break;
10 display(ch,rows,cols);
11 while(getchar()!='\n')
12 continue;
这是C primer plus8.5 showchar.c的代码
求助下这段程序的执行步骤,7~9行的.
ch=getchar()是一次只读取一个字符然后进入循环,但循环中的scanf是要读取两个数字.
1.如果每次只读取一个数字然后进入循环的话,那么第9行程序不是就出现错误了吗?
2.如果是读入缓冲区然后再进入循环的话,那么scanf是执行然后任意寻找两个数字?(这个结论好像是错误的..)
求问下当getchar()和scanf照这样的代码计算机是如何执行的?