getchar用法

2020-10-01 教育 98阅读

三种用法:

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));

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

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com