C語言的get函式彙總

2021-06-18 16:53:37 字數 2383 閱讀 9885

1、int getc(file *stream);

從指定輸入流 stream 的當前位置讀取乙個字元,若讀到檔案尾而無資料時便返回eof。

main()

檔案內容為:123456回車,輸出:5

2、int getchar(void);

getchar()從控制台讀取乙個字元,並回顯。當程式呼叫getchar時,程式就等著使用者按鍵。使用者輸入的字元被存放在鍵盤緩衝區中,直到使用者按回車為止(回車字元也放在緩衝區中)。當使用者鍵入回車之後,getchar才開始從stdio流中每次讀入乙個字元。getchar函式的返回值是使用者輸入的第乙個字元的ascii碼,如出錯返回-1,且將使用者輸入的字元回顯到螢幕。如使用者在按回車之前輸入了不只乙個字元,其他字元會保留在鍵盤快取區中,等待後續getchar呼叫讀取。也就是說,後續的getchar呼叫不會等待使用者按鍵,而直接讀取緩衝區中的字元,直到緩衝區中的字元讀完為後,才等待使用者按鍵。

int main(void)

執行結果分析:

(1)輸入123456回車,列印出49 50 51 52 53 54

(2)輸入12345回車,列印出49 50 51 52 53 10(10為'\n'的ascii碼)

(3)輸入123回車,列印出49 50 51 ,程式執行到 int ch5=getchar()等待輸入。再輸入456回車,列印出10 52 53

(4)輸入1回車,程式執行到 int ch3=getchar()等待輸入。再輸入23456回車,列印出49 10 50 51 52 53

3、int getch(void);

從控制台讀取乙個字元,但不把該字元顯示在螢幕上,也就是不回顯。

getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待使用者按回車,只要使用者按乙個鍵,getch就立刻返回,getch返回值是使用者輸入的ascii碼,出錯返回-1。輸入的字元不會回顯在螢幕上。getch函式常用於程式除錯中,在除錯時,在關鍵位置顯示有關的結果以待檢視,然後用getch函式暫停程式執行,當按任意鍵後程式繼續執行。

4、int getche(void);

從控制台讀取乙個字元,把該字元顯示在螢幕上,也就是回顯。

getche()和getch()很相似,不同之處就在於getch()無返回顯示,getche()有返回顯示。

main()

特別注意:如果輸入的是enter鍵,緩衝的輸入函式 getchar 會把它當'\n',而不緩衝的輸入函式 getche 和getch 是把它當'\r'。

main()

執行結果分析:

(1)程式執行後,首先列印 getchar:,等待輸入。此時,按enter鍵,由於getchar 將其當作'\n'並且回顯,因此換行並列印'\n'的ascii碼 10。

(2)然後,程式換行列印 getch:,並等待輸入。此時,按enter鍵,由於getch 將其當作'\r'並且不回顯,因此不回車,而在後面接著列印'\r'的ascii碼 13。

(2)接下來,程式換行列印 getche:,並等待輸入。此時,按enter鍵,由於getche 將其當作'\r'並且回顯,因此回到本行開頭,列印'\r'的ascii碼 13。

最後結果:

getchar:

getch:13

5、int fgetc(file * stream);

與getc()作用相同,但有幾點區別:

(1)getc(可以是)巨集操作,fgetc(必須)是函式。

(2)fgetc()可以當作其他函式的引數,但是getc()不可以。

一般來講getc()速度比fgetc()快,因為巨集操作比函式操作快。

6、int fgetchar(void);

與getchar()作用相同。兩者區別可參考 fgetc 和 fgetc 之間的區別。

7、char *gets(char *buffer);

從stdin流中讀取字串,直至接受到換行符或eof時停止,並將讀取的結果存放在buffer指標所指向的字元陣列中。換行符不作為讀取串的內容,讀取的換行符被轉換為null值,並由此來結束字串。

8、char *fgets(char *str, int n, file *stream);

函式的功能是從stream所指流中讀入n-1個字元放入str為起始位址的空間內;如果在未讀滿n-1個字元之時,已讀到乙個換行符或乙個eof(檔案結束標誌),則結束本次讀操作,讀入的字串中最後包含讀到的換行符。因此,確切地說,呼叫fgets函式時,最多只能讀入n-1個字元。讀入結束後,系統將自動在最後加'\0',並以str作為函式值返回。

比較 gets 和 fgets 的區別:

main()

輸入:1111

2222

輸出:11112222

**:

C語言的put函式彙總

1 int putc int ch,file stream 輸出一字元到指定流中 int main void 2 int putchar int ch 在stdout上輸出字元,stdout可以重定位,預設是螢幕 int main void 3 int putch char ch 輸出字元到螢幕上 ...

C語言記憶體操作函式彙總

一 malloc calloc 名稱 malloc calloc 功能 動態記憶體分配函式 標頭檔案 include h 函式原形 void malloc size t size void calloc size t num,size t size 引數 size 分配記憶體塊的大小 num 分配記...

c語言記憶體操作函式彙總

一 malloc calloc 名稱 malloc calloc 功能 動態記憶體分配函式 標頭檔案 include h 函式原形 void malloc size t size void calloc size t num,size t size 引數 size 分配記憶體塊的大小 num 分配記...