目錄
- 一.getchar 函式簡介
- 1.getchar 原理
- 2.getchar 函式宣告
- 3.getchar 使用場景
- 二.getchar 函式使用
- 三.getchar 函式妙用
- 四.猜你喜歡
零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門
一.getchar函式簡介
1.getchar 原理
getchar 函式用于獲取用戶輸入,達到人機互動的目的,當程式呼叫 getchar 時,程式就等著用戶鍵盤按鍵并將用戶輸入的字符被存放在鍵盤緩沖區中,直到用戶按回車為止(回車字符也放在緩沖區中),當用戶鍵入回車之后,getchar 才開始從緩沖區中讀入字符,例如:用戶按下鍵盤的 a 鍵,那么 getchar 函式就回傳字符 a ;
2.getchar 函式宣告
該函式宣告在`stdio.h`頭檔案中,使用的時候要包含stdio.h頭檔案,如:
#include<stdio.h>
/*
*函式描述:獲取控制臺用戶的輸入字符
*
*回傳值:回傳用戶輸入值對應的 char 值
*/
char getchar(void)
在 C 語言中對于控制臺程式,我們一般通過 printf 函式輸出資訊到控制臺視窗顯示,而 getchar 函式則是可以從控制臺獲取用戶的輸入,而達到和用戶互動的目的,注意兩者的區別!
3.getchar 使用場景
1.可以和用戶互動,獲取用戶的鍵盤輸入,例如:用戶按下鍵盤的
a鍵,那么getchar函式就回傳字符a;2.對于
win32控制臺而言,getchar函式和system("pause")函式作用類似,解決控制臺黑屏視窗一閃而過的問題;
二.getchar函式使用
/******************************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - C/C++ getchar函式
//@Time:2021/08/04 08:00
//@Motto:不積跬步無以至千里,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累!
/******************************************************************************************/
#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
請按任意鍵繼續. . .
*/
因為我輸入的是 w ,所以 getchar 函式回傳的就是 w ,你輸入任意按鍵都是可以的;值得注意的是:
- 1.
getchar函式回傳的字符對應的占位符是%c; - 2.
getchar函式只能獲取單個字符; - 3.回車鍵
'\n'也在緩沖區中,并作為最后一個字符被getchar函式取出;
如果在回車按下之前輸入了多個字符,所有的字符都會被存在緩沖區中,`getchar 函式會默認回傳第一個字符,例如:我們在回車之前輸入了 12345 ,如何把緩沖區的所有字符都獲取到呢?
/******************************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - C/C++ getchar函式
//@Time:2021/08/03 08:00
//@Motto:不積跬步無以至千里,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累!
/******************************************************************************************/
#include "stdafx.h"
#include "stdio.h"
#include "windows.h"
int _tmain(int argc, _TCHAR* argv[])
{
char c = getchar();
for (;;) //死回圈
{
if (c == '\n') //檢查是不是回車鍵
{
printf("最后一個字符啦 %c \n", c);
break;
}
else
{
printf("獲取緩沖區字符 %c \n", c);
c = getchar();
}
}
system("pause");
return 0;
}
/*
12345
獲取緩沖區字符 1
獲取緩沖區字符 2
獲取緩沖區字符 3
獲取緩沖區字符 4
獲取緩沖區字符 5
最后一個字符啦
請按任意鍵繼續. . .
*/
由上面代碼可以明白,回車'\n'按鍵是緩沖區中最后一個字符;
三.getchar函式妙用
一般控制臺程式在運行的時候,只看到一個黑視窗一閃而過,具體顯示的什么根本來不及看,在前面的文章中我們介紹了可以通過 system 函式解決這個問題,而今天我們使用 getchar 函式一樣能完成這個功能,因為在呼叫 `getchar 函式之后,程式回一直等待用戶輸入直到按下回車之后程式才會繼續執行,示例代碼如下:
/******************************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - C/C++ getchar函式
//@Time:2021/08/03 08:00
//@Motto:不積跬步無以至千里,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累!
/******************************************************************************************/
#include "stdafx.h"
#include "stdio.h"
int _tmain(int argc, _TCHAR* argv[])
{
printf("猿說編程 - python和C++教程\n");
getchar();
printf("程式結束\n");
return 0;
}
/*
猿說編程 - python和C++教程
*/
運行這個程式,控制臺輸出了第一個
printf函式的內容:猿說編程 – python和C++教程 ,而第二個printf函式的內容: 程式結束 并沒有顯示到控制臺,是因為getchar函式在等待我們輸入任意字符并按下回車;當我們按下鍵盤任意按鍵并敲回車之后,程式立即輸出第二個
printf函式的內容: **程式結束 **,然后主函式 `main 結束,程式退出,控制臺視窗消失;
四.猜你喜歡
- C 語言 陣列下標越界和記憶體溢位區別
- C 語言 使用指標遍歷陣列
- C 語言 指標和陣列區別
- C 語言 指標陣列和陣列指標區別
- C 語言 野指標
- C 語言 函式值傳遞和址傳遞
- C 語言 函式不定長引數
- C 語言 函式指標
- C 語言 指標函式
- C 語言 回呼函式 callback
- C 語言 #pragma once
- C 語言 #include <> 與 #include “” 區別
- C 語言 const 修飾函式引數
- C 語言 const 和 define 區別
- C 語言 #運算子
- C 語言 ##運算子
- C 語言 __VA_ARGS__
- C 語言 ##__VA_ARGS__
- C 語言 函式不定長引數 ##__VA_ARGS__經典案例
- C 語言 va_start / va_end / va_arg 自定義 printf 函式
- C 語言 main 函式
- C 語言 main 函式引數 main(int argc, char *argv[])
- C 語言 區域變數
- C 語言 全域變數
- C 語言 全域變數和區域變數區別
- C 語言 static
- C 語言 extern
- C/C++ putchar 函式
- C/C++ getchar 函式
未經允許不得轉載:猿說編程 ? C/C++ getchar 函式
本文由博客 - 猿說編程 猿說編程 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/356639.html
標籤:C
上一篇:JavaSE(基礎篇)——陣列
