您的位置:首页>科学 >getchar()的作用

getchar()的作用

2023-09-29 17:38

目前来说,我遇到getchar()的方式有两种

(1) 在程序末尾添加getchar(),防止程序立即退出。它与 system("pause"); 具有相同的功能。也许你写完代码后用ctrl + F5运行它。没有 getchar();程序不会立即退出。当然,编译器有这个功能。然而,如果你用debug文件夹中的.exe文件打开代码,就不会出现 getchar() 或 system("pause") ;程序会闪烁并消失,可能只有零点几秒。 getchar();让程序停留在这一步,直到收到来自键盘的消息。

(2) 在从键盘连续输入的两个句子的中间。这有点有趣。下面我用一段代码来演示一下


这段代码中我注释掉了getchar(),看一下运行结果


你看到什么了吗?下面的gets(str2)这句话就直接执行了。在我输入字符之前,执行就结束了。

看看添加了getchar()的程序


你看出区别了吗?这里的 gets(str2) 并没有直接执行。接下来我输入命令


这就是我想要的运行结果。

那么为什么会发生这种情况呢?我也在网上查了一些资料。这是我的总结:

从键盘输入时,键盘输入的字符将保存在缓冲区中。当键盘按下回车键时,缓冲区被清除,缓冲区的内容被写入目标。比如我代码的目标是str,也就是我从键盘输入的列表写入到str数组中。此时缓冲区里还有什么?准确的说,此时缓冲区中还有一个字符‘输入’,

如果不加getchar(),缓冲区会将字符'enter'写入gets(str2)中,然后程序会像上面一样直接结束。但是如果你添加 getchar();它会吃掉缓冲区。如果在该区域中输入“enter”字符,则缓冲区实际上什么都没有。 gets(str2)等待缓冲区写入内容,则程序将执行如下


当天报价

生逢好时辰,得好名声。


如果你生在对的时间,你的名声自然就来了。