这个程序应该做什么,
#include<stdio.h>
main()
{
getchar();
}
我希望它显示一个空白屏幕,直到我在键盘上点击任何字符。但是它做的事情很奇怪。它显示我按的任何东西。它永远不会终止,直到我按下回车键。
据我所知,getchar()应该只读取一个字符。它不应该输出任何东西。
编辑:
为什么 getchar() 在读取一个字符后不停止,例如在这段代码中:
#include <stdio.h>
main()
{
getchar();
printf("Done");
}
程序应在读取一个字符后打印完成。
在 getchar()
完成之前,您的程序不会终止。getchar()
在填充输入缓冲区之前不会完成。在按“Enter”之前,不会填充输入缓冲区。
您看到的字符就是您正在键入的字符。这是默认的终端驱动行为,不是由程序驱动的。
您正在按键,因此您的主机向您显示相同的字符。这是预期的行为。getch()
还将返回正在屏幕上打印的字符的 ASCII 值。
getchar
基本上做的是从标准输入读取。这是一个文件描述符为0的文件,它通常指的是您输入的终端(除非您通过将其更改为某个文件)