2011-10-26 78 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