最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++中putchar與getchar函數(shù)的細節(jié)及運用

 更新時間:2021年07月27日 11:48:13   作者:Chaser Feng  
C語言提供putchar函數(shù),用于給終端輸出一個字符;getchar函數(shù),可以從終端接收用戶輸入的一個字符,本文給大家分享C++中putchar與getchar函數(shù)的細節(jié)及運用,感興趣的朋友跟隨小編一起看看吧

在C語言中,輸入和輸出除了用printf和scanf外,另外還有用于輸入字符的函數(shù)為getchar()函數(shù),用于輸出字符的函數(shù)為putchar()函數(shù)。
功能解釋如下:

在這里插入圖片描述
在這里插入圖片描述

下面用例子來說明函數(shù)的用法

#include <stdio.h>
int main()
{
 int ch = 0;
 while ((ch = getchar()) != EOF)
       putchar(ch);
    return 0;
}

結果:

在這里插入圖片描述

可以看出,當按下鍵盤上的回車鍵時,getchar函數(shù)會讀取到屏幕中輸入的字符和回車字符'\n',而putchar函數(shù)會將這個字符再次打印在屏幕上并顯示出回車的效果。而當按下鍵盤上的ctrl+z鍵的時候,就會讓getchar讀取到EOF(意味著讀取字符失?。藭rgetchar就會讀取結束。

應用:

#include <stdio.h>
int main()
{
	char password[20] = { 0 };
	printf("請輸入密碼:>\n");
	scanf("%s", password);
	printf("請確認密碼<Y/N>:");
	int ch = getchar();
		if (ch == 'Y')
		{
			printf("確認成功!");
		}
		else
		{
			printf("確認失?。?);
		}
	return 0;
}

在這里插入圖片描述

整體上看并沒有什么語法上的錯誤,但為什么會出現(xiàn)上面的情況呢?這里就要重點說明一下getchar函數(shù)的讀取細節(jié)了。
如圖:

在這里插入圖片描述

首先scanf會把空格前的字符(即“12345”)都獲取,此時緩沖區(qū)中就會剩下“ (空格)avcde”,而getchar函數(shù)就會將剩下的第一個字符讀取,讀取的第一個位“(空格)”,不為“Y”,所以顯示“確認失敗”;如何解決這一問題呢?就需要將剩下的字符都獲取完(包括“\n”,原因是當在鍵盤上按下回車鍵時,系統(tǒng)就會默認輸入一個“\n”),再輸入后才會讀取成功。
改進如下:

char password[20] = { 0 };
	printf("請輸入密碼:>\n");
	scanf("%s", password);
	printf("請確認密碼<Y/N>:");
	int tmp = 0;
	//巧妙的運用循環(huán)來清理緩沖區(qū)內(nèi)的多個字符
	while ((tmp = getchar()) != '\n')//當獲取到'\n'時,循環(huán)結束
	{
		;
	}
	int ch = getchar();
		if (ch == 'Y')
		{
			printf("確認成功!");
		}
		else
		{
			printf("確認失敗!");
		}

在這里插入圖片描述

此時就能按照正常的邏輯運行了。
以上就是對getchar函數(shù)一些小細節(jié)的理解,如有不當,歡迎指正!

到此這篇關于C++中putchar與getchar函數(shù)的細節(jié)及運用的文章就介紹到這了,更多相關putchar與getchar函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關文章

  • C++ 強制類型轉(zhuǎn)換詳解

    C++ 強制類型轉(zhuǎn)換詳解

    這篇文章主要介紹的是C++ 強制類型轉(zhuǎn)換詳解,C語言中的強制轉(zhuǎn)換主要用于普通數(shù)據(jù)類型、指針的強制轉(zhuǎn)換,沒有類型檢查,轉(zhuǎn)換不安全,下面我們來看看其具體語法及詳細內(nèi)容
    2021-11-11
  • C語言實現(xiàn)BMP圖像閉運算處理

    C語言實現(xiàn)BMP圖像閉運算處理

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)BMP圖像閉運算處理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • boost.asio框架系列之socket編程

    boost.asio框架系列之socket編程

    這篇文章介紹了boost.asio框架系列之socket編程,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C++設計模式之工廠模式

    C++設計模式之工廠模式

    本文是C++設計模式系列文章的第一篇,主要給大家講述下工廠模式,非常的簡單實用,有需要的小伙伴可以參考下
    2016-05-05
  • C++實現(xiàn)路口交通燈模擬系統(tǒng)

    C++實現(xiàn)路口交通燈模擬系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)路口交通燈模擬系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 6個變態(tài)的C語言Hello World程序

    6個變態(tài)的C語言Hello World程序

    這篇文章主要介紹了6個變態(tài)的C語言Hello World程序,需要的朋友可以參考下
    2016-05-05
  • OpenSSL使用AES實現(xiàn)文件加解密功能

    OpenSSL使用AES實現(xiàn)文件加解密功能

    AES是一種對稱加密算法,它是目前廣泛使用的加密算法之一,意味著加密和解密使用相同的密鑰,這就要求密鑰的安全性非常重要,因為任何擁有密鑰的人都能進行加密和解密操作,本文給大家介紹了OpenSSL如何使用AES實現(xiàn)文件加解密功能,需要的朋友可以參考下
    2023-11-11
  • C語言實現(xiàn)循環(huán)隊列基本操作

    C語言實現(xiàn)循環(huán)隊列基本操作

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)循環(huán)隊列基本操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • c++先序二叉樹的構建詳解

    c++先序二叉樹的構建詳解

    在本篇文章里小編給大家分享了關于c++先序二叉樹的構建的相關知識點,需要的朋友們跟著學習下。
    2019-04-04
  • C++之openFrameworks框架介紹

    C++之openFrameworks框架介紹

    本章我們將介紹一個非常好用的跨平臺的 C++開源框架 openFrameworks。它是一個開源的跨平臺的C++工具包,方便開發(fā)者創(chuàng)建出一個更簡單和直觀的框架,擅長開發(fā)圖像和動畫,感興趣的同學可以參考一下
    2023-05-05

最新評論

平利县| 陈巴尔虎旗| 黄骅市| 股票| 舞阳县| 陆河县| 景东| 莎车县| 白银市| 顺平县| 白水县| 山西省| 同德县| 措勤县| 同仁县| 田林县| 临安市| 姜堰市| 忻州市| 贵州省| 博罗县| 苏尼特右旗| 东光县| 广州市| 肥东县| 宁晋县| 河源市| 锦州市| 城口县| 安义县| 金沙县| 昌乐县| 务川| 山东省| 大兴区| 湖北省| 岱山县| 安康市| 正蓝旗| 瑞昌市| 西充县|