我需要编写一个程序来搜索文本文件并创建一个名称列表,该文件包含在内。每个名字都放在“[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 file
它包含大量其他数据,但我想做的是制作烘焙程序名称列表。所以我想搜索[PRG],而不是读另外两个单词而不是得到其余的一行,这是烘焙程序的名称。
答案 0 :(得分:0)
如果没有看到您的文件中的数据副本或某些数据具有很大的相似性,那么很难提供帮助。
出现了许多问题,我怀疑他们中的任何一个都很重要,因为你称自己为“编程新手”。
首先在http://hackipedia.org/Character%20sets/Unicode,%20UTF%20and%20UCS%20encodings/UCS-2.htm
进行一些研究性阅读特别是标题为的部分: 字节顺序编码方案
如果您的数据在“PRG”标签后面有BOM,那么您必须通过编码适当的字节顺序来处理...
另请阅读以下资料: https://msdn.microsoft.com/en-us/library/mt771556.aspx
特别是底部的注释......
Dr t