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

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

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

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

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

下面用例子來(lái)說(shuō)明函數(shù)的用法

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

結(jié)果:

在這里插入圖片描述

可以看出,當(dāng)按下鍵盤(pán)上的回車鍵時(shí),getchar函數(shù)會(huì)讀取到屏幕中輸入的字符和回車字符'\n',而putchar函數(shù)會(huì)將這個(gè)字符再次打印在屏幕上并顯示出回車的效果。而當(dāng)按下鍵盤(pán)上的ctrl+z鍵的時(shí)候,就會(huì)讓getchar讀取到EOF(意味著讀取字符失敗),此時(shí)getchar就會(huì)讀取結(jié)束。

應(yīng)用:

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

在這里插入圖片描述

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

在這里插入圖片描述

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

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

在這里插入圖片描述

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

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

您可能感興趣的文章:

相關(guān)文章

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

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

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

    C語(yǔ)言實(shí)現(xiàn)BMP圖像閉運(yùn)算處理

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

    boost.asio框架系列之socket編程

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

    C++設(shè)計(jì)模式之工廠模式

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

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

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

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

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

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

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

    C語(yǔ)言實(shí)現(xiàn)循環(huán)隊(duì)列基本操作

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

    c++先序二叉樹(shù)的構(gòu)建詳解

    在本篇文章里小編給大家分享了關(guān)于c++先序二叉樹(shù)的構(gòu)建的相關(guān)知識(shí)點(diǎn),需要的朋友們跟著學(xué)習(xí)下。
    2019-04-04
  • C++之openFrameworks框架介紹

    C++之openFrameworks框架介紹

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

最新評(píng)論

瓦房店市| 萨嘎县| 无极县| 临沧市| 政和县| 年辖:市辖区| 肥乡县| 嘉兴市| 兰考县| 舞钢市| 双辽市| 甘泉县| 车险| 伊宁市| 探索| 遂宁市| 彭州市| 芜湖市| 东港市| 牟定县| 项城市| 渭源县| 宁河县| 蒙山县| 吴江市| 贺州市| 登封市| 栾城县| 禄劝| 海口市| 西乌珠穆沁旗| 满城县| 南丰县| 奇台县| 哈尔滨市| 崇左市| 石阡县| 永和县| 临武县| 临洮县| 榆林市|