古詩詞大全網 - 成語解釋 - getchar用法

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

輸出各種數據類型的字節長度。