Мне нужно написать программу, которая ищет текстовый файл и составляет список имен, которые этот файл содержит. Каждое имя ставится после фразы «[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%20sets/Unicode,%20UTF%20and%20UCS%20encodings/UCS-2.htm
Особенно раздел под названием:
Схемы кодирования байтовых порядков
Если ваши данные имеют спецификацию после метки «PRG», вам придется иметь дело с этим, кодируя соответствующий порядковый номер …
Также читайте материал по адресу:
https://msdn.microsoft.com/en-us/library/mt771556.aspx
Особенно примечание внизу …
Доктор т
Других решений пока нет …