getchar用法

三种用法:

1、从缓冲区读走一个字符,相当于清除缓冲区?

2、前面的scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致),所以如果不在此加一个getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误?

3、getchar()是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab)?

错在getchar() 是从键盘读取一个字符放入缓冲区,然后在取出来,你在输入某个数或者字符后敲回车其实缓冲区也接受了你的回车了。

可以这么修改:

char ch;

int key;

printf("please input key");

scanf("%d",&key);

fflush(stdin);

printf("please input ming wen\n");

ch=getchar();

fflush(stdin);

while(ch!='\n')

{

putchar(ch+key);

printf("\n");

ch=getchar();

fflush(stdin);

}

加上fflush(stdin);来清空缓冲区

想要程序结束,直接敲回车就可以了。

扩展资料:

使用getchar函数还应注意几个问题:

1、getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。

2、使用本函数前必须包含文件“stdio.h”。

3、在TC屏幕下运行含本函数程序时,将退出TC 屏幕进入用户屏幕等待用户输入。输入完毕再返回TC屏幕。

void main(){

char a,b,c;

printf("input character a,b,c\n");

scanf("%c %c %c",&a,&b,&c);

printf("%d,%d,%d\n%c,%c,%c\n",a,b,c,a-32,b-32,c-32);

}

输入三个小写字母

输出其ASCII码和对应的大写字母。

void main(){

int a;

long b;

float f;

double d;

char c;

printf("%d,%d,%d,%d,%d",sizeof(a),sizeof(b),sizeof(f)

,sizeof(d),sizeof(c));

输出各种数据类型的字节长度。

本文来自作者[雁兰]投稿,不代表华瑞号立场,如若转载,请注明出处:https://www.huaruijixie.net/huarui/1578.html

(13)
雁兰的头像雁兰签约作者

文章推荐

发表回复

作者才能评论

评论列表(3条)

  • 雁兰的头像
    雁兰 2025年10月03日

    我是华瑞号的签约作者“雁兰”

  • 雁兰
    雁兰 2025年10月03日

    本文概览:三种用法:1、从缓冲区读走一个字符,相当于清除缓冲区?2、前面的scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致),所以如果不在此加...

  • 雁兰
    用户100311 2025年10月03日

    文章不错《getchar用法》内容很有帮助

联系我们

邮件:华瑞号@gmail.com

工作时间:周一至周五,9:30-17:30,节假日休息

关注微信