C++讀取文本文件中的漢字亂碼情況原因及解決
C++讀取文本文件中的漢字亂碼情況原因及解決
本文介紹簡(jiǎn)體中文Windows操作系統(tǒng)中,C++讀取文本文件中的漢字亂碼情況原因及解決。
問題描述
C++讀取文本文件中的漢字亂碼情況,下面代碼可以讀取d:/data.txt中的內(nèi)容并輸出:
//C++將文本文件按行讀入 #include<fstream> #include<iostream> #include<string> using namespace std; int main() { ifstream file; file.open("d:/data.txt", ios::in); string s; while(getline(file,s)) { cout<<s<<endl; } file.close(); return 0; }
編譯運(yùn)行,若data.txt文件中含有中文顯示亂碼,參見下圖:
什么原因?
查看cmd當(dāng)前編碼方式,按下win+R組合鍵,打開運(yùn)行框之后輸入cmd打開,然后在cmd標(biāo)題欄右鍵→屬性,點(diǎn)開就可以查看當(dāng)前編碼方式:
請(qǐng)留意 “當(dāng)前代碼頁”部分,當(dāng)前編碼方式“ANSI”
用記事本,打開你的文本文件,請(qǐng)留意,文件的“編碼”格式
文本文件的編碼格式默認(rèn)的比如UTF-8格式,和cmd編碼格式“ANSI”不一致,將文本文件的編碼格式改為格式“ANSI”即可,參見下圖:
再次運(yùn)行,輸出不再亂碼。
最后
小結(jié)一下,c++讀取文件出現(xiàn)亂碼的原因是文本文件的編碼格式和cmd的編碼方式不一致造成的,修改文本文件編碼格式,文本文件的編碼格式和cmd的編碼方式一致即可。
以上就是C++讀取文本文件中的漢字亂碼情況原因及解決的詳細(xì)內(nèi)容,更多關(guān)于C++讀取文本文件亂碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C++如何實(shí)現(xiàn)簡(jiǎn)單的計(jì)時(shí)器詳解
因?yàn)樽罱e著無聊就想著要不用C++寫點(diǎn)什么東西,仔細(xì)想了想其實(shí)自己的C++學(xué)的也不怎么好,寫個(gè)簡(jiǎn)單的計(jì)時(shí)器吧!所以下面這篇文章主要介紹了利用C++如何實(shí)現(xiàn)簡(jiǎn)單的計(jì)時(shí)器,需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01C語言關(guān)于注釋的知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家分享的是關(guān)于C語言關(guān)于注釋的知識(shí)點(diǎn)總結(jié),需要的朋友們可以參考學(xué)習(xí)下。2020-02-02DHCP:解析開發(fā)板上動(dòng)態(tài)獲取ip的2種實(shí)現(xiàn)方法詳解
本篇文章是對(duì)開發(fā)板上動(dòng)態(tài)獲取ip的2種實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05Qt中QList與QLinkedList類的常用方法總結(jié)
這篇文章主要為大家詳細(xì)介紹了Qt中QList與QLinkedList類的常用方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Qt有一定的幫助,需要的可以參考一下2022-12-12C語言數(shù)據(jù)結(jié)構(gòu)堆的基本操作實(shí)現(xiàn)
這篇文章主要為大家介紹了C語言數(shù)據(jù)結(jié)構(gòu)堆的基本操作實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-11-11深入解析C++中的函數(shù)模板和函數(shù)的默認(rèn)參數(shù)
這篇文章主要介紹了深入解析C++中的函數(shù)模板和函數(shù)的默認(rèn)參數(shù),是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-09-09