2011-10-26 105 views
1

嘗試將一些寬字符寫入文件時,所有輸出到文件的輸出在這些字符後停止。我不知道發生了什麼事。打到寬字符後截斷文件

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

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

這只是一個例子。真正的數據來自注冊表。 – Bluebaron

+1

顯示錶現行爲的真實代碼。 – tinman

+0

「看不見」不是廣義字面意思? – Damon

回答

1

源代碼中的非ASCII字符以實現定義的方式進行解析。使用十六進制序列或更新的(c99或C++ 11之後的)unicode字符文字並使用它們的UTF-8/16/32代碼點表示。

這是實現定義的行爲,所以除非你確定你的編譯器做了你所期望的,否則不要這樣做。

+0

我的編譯器和ide都允許這樣做並正確執行 – Bluebaron

+0

這只是一個例子。實際數據來自中國員工工作站的註冊表。 – Bluebaron

+0

http://codepad.org/qLtE2LIb – Bluebaron