目錄
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信平臺小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了宜秀免費(fèi)建站歡迎大家使用!
零基礎(chǔ) C/C++ 學(xué)習(xí)路線推薦 : C/C++ 學(xué)習(xí)目錄 >> C 語言基礎(chǔ)入門
getchar
函數(shù)簡介getchar
原理getchar
函數(shù)用于獲取用戶輸入,達(dá)到人機(jī)交互的目的,當(dāng)程序調(diào)用 getchar
時,程序就等著用戶鍵盤按鍵并將用戶輸入的字符被存放在鍵盤緩沖區(qū)中。直到用戶按回車為止(回車字符也放在緩沖區(qū)中),當(dāng)用戶鍵入回車之后,getchar
才開始從緩沖區(qū)中讀入字符,例如:用戶按下鍵盤的 a
鍵,那么 getchar
函數(shù)就返回字符 a
;
該函數(shù)聲明在`stdio.h`頭文件中,使用的時候要包含stdio.h
頭文件。如:
#include<stdio.h>
/*
*函數(shù)描述:獲取控制臺用戶的輸入字符
*
*返回值:返回用戶輸入值對應(yīng)的 char 值
*/
char getchar(void)
在 C
語言中對于控制臺程序,我們一般通過 printf 函數(shù)輸出信息到控制臺窗口顯示,而 getchar
函數(shù)則是可以從控制臺獲取用戶的輸入,而達(dá)到和用戶交互的目的,注意兩者的區(qū)別!
1.可以和用戶交互,獲取用戶的鍵盤輸入,例如:用戶按下鍵盤的
a
鍵,那么getchar
函數(shù)就返回字符a
;2.對于
win32
控制臺而言,getchar
函數(shù)和system("pause")
函數(shù)作用類似,解決控制臺黑屏窗口一閃而過的問題;
getchar
函數(shù)使用/******************************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - C/C++ getchar函數(shù)
//@Time:2021/08/04 08:00
//@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!
/******************************************************************************************/
#include "stdafx.h"
#include "stdio.h"
#include "windows.h"
int _tmain(int argc, _TCHAR* argv[])
{
printf("請輸入字符:\n");
char c = getchar();
printf("獲取到您輸入的字符:%c\n",c);
system("pause");
return 0;
}
/*
請輸入字符:
w
獲取到您輸入的字符:w
請按任意鍵繼續(xù). . .
*/
因?yàn)槲逸斎氲氖?w
,所以 getchar
函數(shù)返回的就是 w
,你輸入任意按鍵都是可以的;值得注意的是:
getchar
函數(shù)返回的字符對應(yīng)的占位符是 %c
;getchar
函數(shù)只能獲取單個字符;'\n'
也在緩沖區(qū)中,并作為最后一個字符被 getchar
函數(shù)取出;如果在回車按下之前輸入了多個字符,所有的字符都會被存在緩沖區(qū)中,`getchar 函數(shù)會默認(rèn)返回第一個字符,例如:我們在回車之前輸入了 ,如何把緩沖區(qū)的所有字符都獲取到呢?
/******************************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - C/C++ getchar函數(shù)
//@Time:2021/08/03 08:00
//@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!
/******************************************************************************************/
#include "stdafx.h"
#include "stdio.h"
#include "windows.h"
int _tmain(int argc, _TCHAR* argv[])
{
char c = getchar();
for (;;) //死循環(huán)
{
if (c == '\n') //檢查是不是回車鍵
{
printf("最后一個字符啦 %c \n", c);
break;
}
else
{
printf("獲取緩沖區(qū)字符 %c \n", c);
c = getchar();
}
}
system("pause");
return 0;
}
/*
獲取緩沖區(qū)字符 1
獲取緩沖區(qū)字符 2
獲取緩沖區(qū)字符 3
獲取緩沖區(qū)字符 4
獲取緩沖區(qū)字符 5
最后一個字符啦
請按任意鍵繼續(xù). . .
*/
由上面代碼可以明白,回車'\n'
按鍵是緩沖區(qū)中最后一個字符;
getchar
函數(shù)妙用一般控制臺程序在運(yùn)行的時候,只看到一個黑窗口一閃而過,具體顯示的什么根本來不及看,在前面的文章中我們介紹了可以通過 system
函數(shù)解決這個問題,而今天我們使用 getchar
函數(shù)一樣能完成這個功能,因?yàn)?strong>在調(diào)用 `getchar 函數(shù)之后,程序回一直等待用戶輸入直到按下回車之后程序才會繼續(xù)執(zhí)行,示例代碼如下:
/******************************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - C/C++ getchar函數(shù)
//@Time:2021/08/03 08:00
//@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!
/******************************************************************************************/
#include "stdafx.h"
#include "stdio.h"
int _tmain(int argc, _TCHAR* argv[])
{
printf("猿說編程 - python和C++教程\n");
getchar();
printf("程序結(jié)束\n");
return 0;
}
/*
猿說編程 - python和C++教程
*/
運(yùn)行這個程序,控制臺輸出了第一個
printf
函數(shù)的內(nèi)容:猿說編程 – python和C++教程 ,而第二個printf
函數(shù)的內(nèi)容: 程序結(jié)束 并沒有顯示到控制臺,是因?yàn)?getchar
函數(shù)在等待我們輸入任意字符并按下回車;當(dāng)我們按下鍵盤任意按鍵并敲回車之后,程序立即輸出第二個
printf
函數(shù)的內(nèi)容: **程序結(jié)束 **,然后主函數(shù) `main 結(jié)束,程序退出,控制臺窗口消失;
未經(jīng)允許不得轉(zhuǎn)載:猿說編程 ? C/C++ getchar 函數(shù)
本文由博客 - 猿說編程 猿說編程 發(fā)布!
網(wǎng)站欄目:C/C++ getchar函數(shù)
路徑分享:http://chinadenli.net/article4/dsoipie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、做網(wǎng)站、營銷型網(wǎng)站建設(shè)、網(wǎng)站制作、動態(tài)網(wǎng)站、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)