Я сделал свой простой txt-сканер, который записывает текст в файл, соответствующий моему выбору. Проблема заключается в записи в файл, когда вместо записи пера, например, 洀 漀. На картинке вы можете увидеть, например:писать строки Unicode в txt-файл
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
int offset;
wstring DBSearchLine, ScanLine;
wifstream ScanFile, DBSearchFile;
wofstream ResultFile;
ScanFile.open("ScanFile.txt", ios_base::binary);
ResultFile.open("ResultFile.txt", ios::out, ios_base::binary);
if (ScanFile.is_open())
{
while (!ScanFile.eof())
{
DBSearchFile.open("DBSearchFile.txt", ios_base::binary);
if (!DBSearchFile.is_open())
{
cout << "Error open DBSearchFile.txt" << "\n";
break;
}
getline(ScanFile, ScanLine);
wcout << "Scan line is - " << ScanLine << "\n";
while (!DBSearchFile.eof())
{
getline(DBSearchFile, DBSearchLine);
wcout << "DBSearchLine is -" << DBSearchLine << "\n";
if ((offset = ScanLine.find(DBSearchLine, 0)) != string::npos)
{
ResultFile << ScanLine << L"\n";
}
}
DBSearchFile.close();
}
ScanFile.close();
}
else
{
cout << "Error open ScanFile.txt" << "\n";
}
system("PAUSE");
return 0;
}
ли работа, если вы используете символ вместо широкого полукокса? – ZDF
@ZDF Если вы имеете в виду строку istead wstring, которая не работает getline, потому что в качестве вставленной wstring в строку. И должна быть разница в кодировании – Marek
'ResultFile.open (« ResultFile.txt », ios :: out, ios_base :: binary)' - не должно быть 'ios :: out | ios_base :: binary'? Кроме того, невозможно воспроизвести - clang 3.9.0, Ubuntu 14.04.05 x86_64. –