C 在使用UCS-2 LE编码的文件中搜索短语

C++ searching for a phrase in a file with UCS-2 LE encoding

本文关键字:文件 搜索 短语 编码 LE UCS-2      更新时间:2023-10-16

我需要编写一个搜索文本文件并列出名称列表的程序,该文件包含。每个名称都以" [prg]"短语放置。因此,我想搜索" PRG",而不是阅读下一个单词。但是我有一个问题,因为该文件的编码是UCS-2 le。我发现我需要使用" wstring"变量,而不是"字符串"。但是我看到我正在阅读奇怪的值形成我的文件,而我无法将它们与" prg"短语进行比较。

这是代码:

int main() {
wstring textBuff; // Buffor for reading text from a file
wstring searchBuff = L"PRG"; // Variable containing searching phrase
wifstream file;
file.open("programs.prg", ios::in | ios::binary);
if (file.good()) {
    // Reading file and listing every word after "PRG" phrase
    while (!file.eof()) {
        file >> textBuff;
        if (textBuff.find(searchBuff) != string::npos)
            wcout << textBuff << endl;
    }
}
file.close();
system("pause");
return 0;
}

我是对编程的新手,所以很抱歉,如果我的问题很琐碎,但是我陷入困境,我不知道我还能做什么。先感谢您。

这是我试图从以下数据中获取数据的PRG文件:.prg文件

它包含许多其他数据,但是我要做的是列出烘焙程序的名称。因此,我想搜索[prg],而不是读两个单词,而不是获得剩下的行,这是烘焙程序的名称。

,没有看到文件中的数据副本或某些相似性的数据副本,很难提供很多帮助。

出现了许多问题,我怀疑它们中的任何一个都可能很重要,因为您称自己为"编程新手"。

首先在http://hackipedia.org/character sets/unicode, utf and AND UC%20CENCODING/UCS-2.HTM

开始。

特别是标题为:字节订单编码方案

如果您的数据在" PRG"标签之后具有BOM,则必须通过编码适当的endianess来处理它...

也请阅读以下内容:https://msdn.microsoft.com/en-us/library/mt771556.aspx

特别是底部的注释...

dr t