永发信息网

为什么是两个getchar()啊?能解释一下为什么会实现暂停这个功能吗?我只知道getchar()是输入一个字符的

答案:5  悬赏:70  手机版
解决时间 2021-02-24 02:02
  • 提问者网友:斑駁影
  • 2021-02-23 04:25
为什么是两个getchar()啊?能解释一下为什么会实现暂停这个功能吗?我只知道getchar()是输入一个字符的
最佳答案
  • 五星知识达人网友:不想翻身的咸鱼
  • 2021-02-23 04:46
scanf() 只在输入流中读取自己需要的数据,而就是你你输入的最后的那个换行符并不会被scanf读取掉 而到程序最后用一个gechar()将换行符读取出来,也就是扔掉,然后再用一个gechar()用来暂停
全部回答
  • 1楼网友:渊鱼
  • 2021-02-23 07:34
第一个ch=getchar();是读取你输入文件名最后的那个回车的
你可以 用 getchar();代替
ch=getchar();
ch=getchar();
可以修改为
getchar();
ch=getchar();
  • 2楼网友:未来江山和你
  • 2021-02-23 07:25
在这个程序中, getchar(); 属于用来看结果的,可用system("pause");代替
  • 3楼网友:轻雾山林
  • 2021-02-23 06:02
因为在你前边scanf输入的时候有个换行符没有被读入,还在缓冲区里边,而第一个getchar就会把这个换行符取出来。
你可以把第一个getchar的返回值取出来打印出来比如
main()
{
int n,a[101];
int i;
char c = 'b';//初始化b是为了验证返回值
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=n;i>=1;i--)
printf("%d ",a[i]);
printf("\n");
c = getchar();
printf("a");
putchar(c);
printf("a");
getchar();
}
前后两个都是打印a并且没有换行,中间是把第一个getchar的值打印出来,你会发现两个a之间是有换行的,也就是第一个getchar的返回值。
  • 4楼网友:行路难
  • 2021-02-23 05:29
getchar()是等待输入一个字符的。其实我一直用一个getch()因为这个函数也是等待输入一个字符的,但它不在屏幕上显示出来,而getchar()会显示,可以多输,但只保留最后一个字符
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯