[英]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.