天天看點

putchar與getchar方法小結

getchar()

聲明

int getchar(void);

傳回值

getchar()函數的傳回值是使用者輸入的第一個字元的ASCII碼,如出錯傳回-1,且将使用者輸入的字元回顯到螢幕.如使用者在按回車之前輸入了不止一個字元,其他字元會保留在鍵盤緩存區中,等待後續getchar調用讀取.也就是說,後續的getchar調用不會等待使用者按鍵,而直接讀取緩沖區中的字元,直到緩沖區中的字元讀完為後,才等待使用者按鍵。

作用

從标準輸入流隻讀取一個字元(包括空格、回車、tab),讀到回車符(’\n’)時退出,鍵盤輸入的字元都存到緩沖區内,一旦鍵入回車,getchar就進入緩沖區讀取字元,一次隻傳回第一個字元作為getchar函數的值,如果有循環或足夠多的getchar語句,就會依次讀出緩沖區内的所有字元直到’\n’.要了解這一點,之是以你輸入的一系列字元被依次讀出來,是因為循環的作用使得反複利用getchar在緩沖區裡讀取字元,而不是getchar可以讀取多個字元,事實上getchar每次隻能讀取一個字元.如果需要取消’\n’的影響,可以用getchar()來清除,如:while(c = getchar() != ’ \n ‘);這裡getchar();隻是取消了’\n’但是并沒有賦給任何字元變量,是以不會有影響,相當于清除了這個字元。

putchar()

聲明

int putchar(int char)

傳回值

該函數以無符号 char 強制轉換為 int 的形式傳回寫入的字元,如果發生錯誤則傳回 EOF。

參數

char – 這是要被寫入的字元。該字元以其對應的 int 值進行傳遞。

如何将讀取的字元轉化為十進制整數

自行編寫轉換代碼

#include <stdio.h>
#include <string.h>

int main(){
    char a[] = "47856782";
    int len = strlen(a);
    int x = 0;
    for(int i = 0; i < len;){
        x = x * 10 + a[i++] - '0'; //字元與數字的關系是:字元值 - ‘0’ == 同名數字
    }
    printf("%d\n", x);
    return 0;
}

           

繼續閱讀