2011-10-26 15 views
1

ワイド文字をファイルに書き込もうとすると、ファイルへの出力はすべてその文字の後で停止します。私は何が起こっているのか分からない。ワイド文字を打った後にファイルが切り詰められます

wofstream file("c:\\test.txt"); 

file << L"seen" << L"您好" << "unseen"; 
+0

これはほんの一例です。実際のデータはレジストリからのものです。 – Bluebaron

+1

動作を示す実際のコードを表示します。 – tinman

+0

「目に見えない」は広いリテラルではありませんか? – Damon

答えて

1

ソースコードの非ASCII文字は、実装定義の方法で解析されます。 16進シーケンスまたは新しい(ポストc99またはC++ 11)ユニコード文字リテラルを使用し、UTF-8/16/32コードポイント表現を使用します。

これは実装によって定義された動作なので、コンパイラが期待することを完全に確実に行わない限り、これを行わないでください。

+0

私のコンパイラとIDEの両方がこれを許可し、正しく実行します – Bluebaron

+0

これは単なる例です。実際のデータは、中国の従業員のワークステーションのレジストリから取得されています。 – Bluebaron

+0

http://codepad.org/qLtE2LIb – Bluebaron

関連する問題