C++讀取單個(gè)字符操作示例詳解
get() istream類成員函數(shù)
get() 是 istream 類的成員函數(shù),它有多種重載形式,不過本文只介紹最簡(jiǎn)單最常用的一種:
int get();
此函數(shù)從輸入流中讀入一個(gè)字符,返回值就是該字符的 ASCII 碼。

EOF
如果碰到輸入的末尾,則返回值為 EOF。EOF 是 End of File 的縮寫。
istream 類中從輸入流(包括文件)中讀取數(shù)據(jù)的成員函數(shù),在把輸入數(shù)據(jù)都讀取完后再進(jìn)行讀取,就會(huì)返回 EOF。

EOF 是在 iostream 類中定義的一個(gè)整型常量,值為 -1。get() 函數(shù)不會(huì)跳過空格、制表符、回車等特殊字符,所有的字符都能被讀入。例如下面的程序:
#include <iostream>
using namespace std;
int main()
{
int c;
while ((c = cin.get()) != EOF)
cout.put(c);
return 0;
}程序運(yùn)行情況
http://c.biancheng.net/cplus/↙
http://c.biancheng.net/cplus/
C++ Tutorial↙
C++ Tutorial
^Z↙
↙表示回車鍵,^Z表示 Ctrl+Z 組合鍵。
程序中的變量 c 應(yīng)為 int 類型,而不能是 char 類型。在輸入流中碰到 ASCII 碼等于 0xFF 的字符時(shí),cin.get() 返回 0xFF,0xFF 賦值給 c,此時(shí)如果 c 是 char 類型的,那么其值就是 -1(因?yàn)榉?hào)位為 1 代表負(fù)數(shù)),即等于 EOF,于是程序就錯(cuò)誤地認(rèn)為輸入已經(jīng)結(jié)束。
而在 c 為 int 類型的情況下,將 0xFF 賦值給 c,c 的值是 255(因?yàn)榉?hào)位為 0,是正數(shù)),而非 -1,即除非讀到輸入末尾,c 的值都不可能是 -1。
要將文本文件 test.txt 中的全部?jī)?nèi)容原樣顯示出來,程序可以如下編寫:
#include <iostream>
using namespace std;
int main()
{
int c;
freopen("test.txt", "r", stdin); //將標(biāo)準(zhǔn)輸入重定向?yàn)?test.txt
while ((c = cin.get()) != EOF)
cout.put(c);
return 0;
}以上就是C++讀取單個(gè)字符操作示例詳解的詳細(xì)內(nèi)容,更多關(guān)于C++讀取單個(gè)字符操作的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Qt中狀態(tài)機(jī)框架QState的實(shí)現(xiàn)
這篇文章主要介紹了Qt中狀態(tài)機(jī)框架QState的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-11-11
C++超詳細(xì)梳理lambda和function的使用方法
C++在C11標(biāo)準(zhǔn)中引入了匿名函數(shù),即沒有名字的臨時(shí)函數(shù),又稱之為lambda表達(dá)式.lambda表達(dá)式 實(shí)質(zhì)上是創(chuàng)建一個(gè)匿名函數(shù)/對(duì)象,這篇文章主要介紹了lambda和function的使用方法2022-08-08
淺析C/C++ 中return *this和return this的區(qū)別
return *this返回的是當(dāng)前對(duì)象的克隆或者本身,return this返回當(dāng)前對(duì)象的地址,下面通過本文給大家介紹C/C++ 中return *this和return this的區(qū)別,感興趣的朋友一起看看吧2019-10-10
C語言不使用strcpy函數(shù)如何實(shí)現(xiàn)字符串復(fù)制功能
這篇文章主要給大家介紹了關(guān)于C語言不使用strcpy函數(shù)如何實(shí)現(xiàn)字符串復(fù)制功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
C++實(shí)現(xiàn)高性能轉(zhuǎn)換大小寫算法示例
大小寫轉(zhuǎn)換是我們作為一名程序員經(jīng)常會(huì)遇到,也必須要會(huì)的一個(gè)功能,下面這篇文章主要給大家介紹了關(guān)于C++實(shí)現(xiàn)高性能轉(zhuǎn)換大小寫算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2018-01-01

