在这个非常棒的网站上搜索关于getchar()函数的所有内容时,我发现了这篇文章:Why doesn't getchar() wait for me to press enter after scanf()?
#include <stdio.h>
int main()
{
int value;
printf("1. option 1.\n2. option 2.\n3. option 3.\n4. Exit\n\nMake an option: ");
scanf("%d", &value);
switch (value)
{
case 1:
printf("you selected the option 1.");
break;
case 2:
printf("you selected the option 2.");
break;
case 3:
printf("you selected the option 3.");
break;
case 4:
printf("goodbye");
break;
default:
printf("thats not an option");
break;
}
getchar();//here is the question,why it's useful ?
return 0;
}
我理解整个程序,并且我理解每次调用它时,getchar从文本流中读取下一个输入字符并将其作为其值返回。也就是说,
之后c = getchar();
变量c包含输入的下一个字符。人物通常来自 键盘。
但问题是:为什么程序员在程序结束时调用getchar()?
答案 0 :(得分:4)
这种做法特别适用于控制台应用程序,这样就可以强制程序在按下某个键之前不会停止,这样您就可以读取输出。通常,当程序执行结束时控制台关闭
答案 1 :(得分:1)
最后一个getchar()函数用于让应用程序在退出之前等待按键。
答案 2 :(得分:1)
通常在控制台应用程序中,当您在IDE中工作并运行代码时,会弹出一个终端窗口运行代码,一旦主函数结束,终端窗口也会消失,用户无法看到最后一个输出。我们需要做一些屏幕等待的方式。一种方法是通过等待输入来终止程序。有些人最后使用无缓冲输入功能,所以无论何时按下某个键,该功能都会读取并立即返回。在这种情况下,您使用getchar
这是一个缓冲输入功能,在这种情况下,当您检查完屏幕后,按任意字符并按下将从该功能返回的输入,然后终止该程序。您也可以使用scanf
或其他方式来屏住屏幕。
调试好,请从最终版本中删除。