C++讀取單個(gè)字符操作示例詳解
get() istream類成員函數(shù)
get() 是 istream 類的成員函數(shù),它有多種重載形式,不過本文只介紹最簡單最常用的一種:
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 中的全部內(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)文章
VSCode遠(yuǎn)程代碼開發(fā)及DNS隧道端口轉(zhuǎn)發(fā)實(shí)現(xiàn)遠(yuǎn)程辦公代碼
這篇文章主要介紹了VSCode遠(yuǎn)程代碼開發(fā)及DNS隧道端口轉(zhuǎn)發(fā)實(shí)現(xiàn)遠(yuǎn)程辦公,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04C語言實(shí)現(xiàn)餐廳點(diǎn)餐系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)餐廳點(diǎn)餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06OpenCV reshape函數(shù)實(shí)現(xiàn)矩陣元素序列化
reshape函數(shù)是OpenCV中一個(gè)很有用的函數(shù),不僅可以改變矩陣的通道數(shù),還可以對(duì)矩陣元素進(jìn)行序列化。本文將主要介紹如何通過reshape實(shí)現(xiàn)矩陣元素序列化,需要的小伙伴可以參考一下2021-12-12C++ 字符串string和整數(shù)int的互相轉(zhuǎn)化操作
這篇文章主要介紹了C++ 字符串string和整數(shù)int的互相轉(zhuǎn)化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12C++ 冒泡排序數(shù)據(jù)結(jié)構(gòu)、算法及改進(jìn)算法
冒泡排序是一種簡單排序。這種排序是采用“冒泡策略”將最大元素移到最右邊。在冒泡過程中,相鄰兩個(gè)元素比較,如果左邊大于右邊的,則進(jìn)行交換兩個(gè)元素。這樣一次冒泡后,可確保最大的在最右邊。然后執(zhí)行n次冒泡后排序即可完畢2013-04-04OpenCV基于距離變換和分水嶺實(shí)現(xiàn)圖像分割
圖像分割是根據(jù)灰度、顏色、紋理和形狀等特征,把圖像分成若干個(gè)特定的、具有獨(dú)特性質(zhì)的區(qū)域。本文將基于距離變換和分水嶺實(shí)現(xiàn)圖像分割,需要的可以了解一下2022-09-09