Когда я вывожу файл со стандартным потоком, он показывает кодировку ASCII\ANSI в Notepad++, что я считаю нормальным, но мне нужно это в UCS-2 LE без спецификации. Я не знаю, что я должен изменить в этом коде, вы можете помочь?
Это формат файла сообщения (.vmg) с кодировкой символов в UCS-2 LE без спецификации, и это то, что я хочу создать на С++.
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
int main()
{
double i,j;
stringstream sstream;
cout<<"Number Start from:";
cin>>i;
cout<<"\nNumber ends in:";
cin>>j;
for(i;i<=j;)
{
sstream <<i<<".vmg";
string ss = sstream.str();
ofstream sout(ss.c_str());
sout<<"BEGIN:VMSG"<<'\n'<<"VERSION:1.1"<<'\n'<<"X-IRMC-STATUS:"<<'\n'<<"X-IRMC-BOX:INBOX"<<'\n'<<"X-NOK-DT:20101224T190106Z"<<'\n'<<"X-MESSAGE-TYPE:SUBMIT"<<'\n'<<"BEGIN:VCARD"<<'\n'<<"VERSION:3.0"<<'\n'<<"N:"<<'\n'<<"TEL:"<<'\n'<<"END:VCARD"<<'\n'<<"BEGIN:VENV"<<'\n'<<"BEGIN:VCARD"<<'\n'<<"VERSION:3.0"<<'\n'<<"N:"<<'\n'<<"TEL:6969"<<'\n'<<"END:VCARD"<<'\n'<<"BEGIN:VENV"<<'\n'<<"BEGIN:VBODY"<<'\n'<<"Date:24.12.2010 19:01:06"<<'\n'<<"bid "<<i<<'\n'<<"END:VBODY"<<'\n'<<"END:VENV"<<'\n'<<"END:VENV"<<'\n'<<"END:VMSG"<<endl;
sstream.str("");
i=i+0.01;
}
return 0;
}
<< endl
» в строку вывода. То, что вы ищете, зависит от платформы. Упоминание Notepad ++ предполагает Windows, как и UCS-2 LE (вероятно, должно быть UTF-16LE, хотя в основном это одно и то же). Скорее всего, вам придется заглянуть в мануалы. Это может быть невозможно; если это так, вам, вероятно, потребуется включить широкоформатное кодирование, и использование широкострочного литерала (L"Hello World"
) поможет, а не помешает. - person Jonathan Leffler   schedule 25.12.2010