关于CString的问题

来源:百度知道 编辑:UC知道 时间:2024/05/04 06:57:21
为什么我看见很多代码用 printf输出CSting不报错 我写就报错?
比如
CString wstr = L"SS";
printf("%s", wstr);
还有

CString wstr = L"C:\AA.TXT";
open(wstr, "a+");

这些为什么都不报错?
错误就是提示参数1不能从CString转换为const char *
VS2005编译器

你的字符串是 Unicode 的, printf 是 ANSI 的, 你应该使用 wprintf, 或者不使用 Unicode 字符串!

因为编译器会进行隐式类型转换,把 CString 转成 char*。
另外,请把你写的报错的语句贴出来,这样我们才好回答啊。

这些本来就没错,当然不报错。
你把你报错的代码贴出来,另外,把报的错也贴出来。

你的字符串是 Unicode 的, printf 是 ANSI 的, 你应该使用 wprintf, 或者不使用 Unicode 字符串!
回答者: sgedev - 高级魔法师 六级 9-2 10:24

此为正确答案~~~