如何在 C++ 中获取、存储和打印非英语字符串

Posted

技术标签:

【中文标题】如何在 C++ 中获取、存储和打印非英语字符串【英文标题】:How to get, store and print non-English strings in C++ 【发布时间】:2019-03-22 05:42:35 【问题描述】:

如何读取包含非英文字符串的 txt 文件?得到字符串后我会将它存储在一个链表中,所以它应该也适合存储在一个节点中,然后打印它。

当我尝试从下面的 .txt 文件代码中获取字符串“türkçe”时,它会给出以下输出:

输出:tⁿrkτe

**word.txt**
türkçe
<string>
<iostream>
<fstream>

int main() 
    fstream inputFile;
    inputFile.open(word.txt);
    string line;
    getline(inputFile,line);
    cout << line << endl;
   return 0;

【问题讨论】:

您的问题是您的控制台的编码与您正在阅读的文件的编码不同,而不是您无法将文件的内容存储在字符串中。 How can I print non English characters taken from a text file in c++?的可能重复 【参考方案1】:

问题的解决方法:

#include <string>
#include <iostream>
#include <fstream>
#include <locale.h>

using namespace std;
int main() 
    setlocale(LC_ALL, "turkish");
    fstream inputFile;
    inputFile.open("word.txt");
    string line;
    getline(inputFile,line);
    cout << line << endl;
   return 0;

【讨论】:

以上是关于如何在 C++ 中获取、存储和打印非英语字符串的主要内容,如果未能解决你的问题,请参考以下文章

VS2012 如何在输出窗口中打印调试信息 C++语言

如何使用 tm 包从非英语语料库中删除常用词尾?

如何从非托管 C++ 代码获取结构化列表值到 C#?

如何使用 nspredicate 对非英语字符串进行排序?

在 C / C++ 中打印所有环境变量

如何将枚举的十六进制值打印到C++中的字符串