[英]How can I get one character from cyrillic string c++
我有西里尔字母。 我需要从中收到一封信。 我只是这样发现的:
wstring line;
wifstream myfile (".../outfile.txt");
if (myfile.is_open())
{
while (myfile.good())
{
getline (myfile,line);
wstring a = line.substr(0,2); // this gives one first letter
//....
}
myfile.close();
}
有没有更好的方法来获取西里尔字母的字母?
如果西里尔文使用UTF-16编码中的代理对,则不要这样做:
wstring a = line.substr(0,2);
您可能要考虑做类似以下的事情:
const wchar_t surrogate[] = { line[0], line[1], L'\0' };
const wchar_t non_surrogate[] = { line[0], L'\0' };
const wstring a = IS_SURROGATE_PAIR(surrogate[0], surrogate[1]) ?
surrogate :
non_surrogate;
IS_SURROGATE_PAIR宏适用于Windows-如果您在其他地方,则可以通过阅读宏链接及其随附的“ 代理和补充字符”文档来进行检查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.