C ++ ищет фразу в файле с кодировкой UCS-2 LE

Мне нужно написать программу, которая ищет текстовый файл и составляет список имен, которые этот файл содержит. Каждое имя ставится после фразы «[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], чем прочитать еще два слова и затем получить остаток строки, который является названием программы выпечки.

0

Решение

Не видя копии данных из вашего файла или некоторых данных с большим сходством, трудно помочь многим.

Возникает ряд вопросов, и я подозреваю, что любой из них может иметь значение, поскольку вы называете себя «новичком в программировании».

Начните с исследования, читая в http://hackipedia.org/Character%20sets/Unicode,%20UTF%20and%20UCS%20encodings/UCS-2.htm

Особенно раздел под названием:
Схемы кодирования байтовых порядков

Если ваши данные имеют спецификацию после метки «PRG», вам придется иметь дело с этим, кодируя соответствующий порядковый номер …

Также читайте материал по адресу:
https://msdn.microsoft.com/en-us/library/mt771556.aspx

Особенно примечание внизу …

Доктор т

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]