scanf()和getchar()是用同一个缓冲区吗?
问题1:scanf()读取到空格换行符后把他丢弃还是放在缓冲区?问题2:此时遇到getchar()能从缓冲区里拿出空格换行符就行处理吗?
下面这段代码,当我输入 X 2 8运行后,程序就跳出了~是因为“回车符”
但我不明白的事,程序运行完后,此时缓冲区里还剩下“两个空格”和一个回车符!
那getchar()应该先读空格,再读回车符呀,为什么直接读了回车符退出了呢?
scanf()和getchar()有时候蛮搞的~~请达人指教
#include <stdio.h>
void display(char cr, int lines, int width);
int main(void)
{
int ch;
int rows, cols;
printf("Enter a character and two integers: \n");
while((ch = getchar()) != '\n')
{
scanf("%d %d", &rows, &cols);
display(ch, rows, cols);
printf("Enter another character and two integers: \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 <= lines; row++)
{
for(col = 1; col <= width; col++)
putchar(cr);
putchar('\n');
}
}