[英]C++ Read UTF-8 (Lithuanian letters) symbols from txt file and show them in console application
[英]Recognizing lithuanian letters from fstream in C++
我的IT老師有一項任務,要找出給定文本中有多少個字母,數字,空格和其他符號。 問題在於文本是用立陶宛字母(Š,š,Ę,ę,Ų,ų等)編寫的,我不知道如何在C ++中識別它們。 為了計算每種類型的符號的計數,我使用getline()
函數逐行從fstream
讀取文本到string
,然后遍歷字符串,比較每個字符與其文字,例如(c >= 'A' && c <= 'Z')
表示它是一個大寫字母,但不適用於立陶宛語字符。 我猜該文本文件以Unicode格式保存。 請幫助我識別文本中的立陶宛字母。
我認為您可能必須打開二進制文件,例如(fileName,ios :: in | ios :: binary); 並逐字節讀取文件
據我了解,您的文本以utf-8編碼存儲。 如果它是utf-16或utf-32-您的getline()函數幾乎總是返回一個或零個符號,我想您會注意到這一點。 這里描述的UTF-8: https : //ru.wikipedia.org/wiki/UTF-8 。 您可以使用standart庫將utf-8字符串轉換為wstring: UTF8到STL中的寬字符轉換 。 然后,您可以使用map <wchar,int>來計算不同符號的計數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.