我有一個C++項目,應該在每行的開始處添加<item>
,並在每行的末尾添加</item >
。這與正常的英文文本工作正常,但我有一箇中文文本文件,我想這樣做,但它不起作用。我通常使用.txt文件,但爲此我必須使用.rtf來保存中文文本。在我運行我的代碼之後,它變成了亂碼。這是一個例子。C++文本文件,中文字符
{\ RTF1 \ adeflang1025 \ ANSI \ ansicpg1252 \ UC1 \ adeff31507 \ deff0 \ stshfdbch31506 \ stshfloch31506 \ stshfhich31506 \ stshfbi31507 \ deflang1033 \ deflangfe1033 \ themelang1033 \ themelangfe0 \ themelangcs0 {\ fonttbl {\ F2 \ fbidi \ fmodern \ fcharset0 \ fprq1 {* \潘 02070309020205020404}速遞 新;}
代碼:
int main()
{
ifstream in;
ofstream out;
string lineT, newlineT;
in.open("rawquote.rtf");
if(in.fail())
exit(1);
out.open("itemisedQuote.rtf");
do
{
getline(in,lineT,'\n');
newlineT += "<item>";
newlineT += lineT;
newlineT += "</item>";
if (lineT.length() >5)
{
out<<newlineT<<'\n';
}
newlineT = "";
lineT = "";
} while(!in.eof());
return 0;
}
以純文本模式查看rawquote.rtf輸入文件以查看它真正包含的內容。 – aschepler 2011-01-06 16:28:01
使用反引號來轉義代碼,如下所示:''- '' –
2011-01-06 16:28:52
RTF要求是來自客戶還是您自己的要求,因爲您在使用純文本文檔時遇到問題?只要使用正確的編碼,沒有理由不能將中文字符輸出到文本文檔中。 – 2011-01-06 16:31:42