VC++中为什么执行以下语句,打印不出来呢?注意:是宽字符 printf("----------------%S\n", L"不一栽"); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用string形式打印宽字符数据肯定不行,L"不一栽"的第一个字节应该不是0,是汉字“不”的高字节,可能按照string形式打印出来是不可见字符。 这样用。wprintf("----------------%s\n", L"不一栽"); 在printf前面加个w,wprintf(这个别用来输出宽字符用的。) 你不会是在Window程序里调用的吧。 如果想把程序写成char/wchar_t通用的版本的话。就这样写: L 换成 _T如果程序中定义 _UNICOUDE 和 UNICODE 的话,下面这段程序就是宽字符版,如果不定义程序是单字符版。_tprintf(_T("----------------%s\n"), _T("不一栽")); 如果想把程序写成char/wchar_t通用的版本的话。就这样写: L 换成 _T如果程序中定义 _UNICOUDE 和 UNICODE 的话,下面这段程序就是宽字符版,如果不定义程序是单字符版。_tprintf(_T("----------------%s\n"), _T("不一栽"));这个不是很明白。可以说得更详细一些吗?我编译时提示:'_tprintf' : undeclared identifier 加入这个头文件<tchar.h>_tprintf(_T("----------------%s\n"), _T("不一栽"));如果定义 _UNICOUDE 和 UNICODE 的话(也就是wchar_t宽字符版本),上面语句编译器解释为wprintf(L("("----------------%s\n"), L"不一栽");如果没有定义_UNICOUDE 和 UNICODE 的话(也就是单字符版本char),上面语句编译器解释为printf("----------------%s\n", "不一栽");你就可以只能维护一个版本的代码,而不是两个版本的代码. 谢谢笑天的回复。还得麻烦您我在“Preprocessor definitions”编辑框中添加 UNICODE 或者 _UNICODE 预处理宏指令头文件加 tchar.h然后代码改为_tprintf(_T("----------------%s\n"), _T("asdf不一栽"));执行结果为:----------------asdf是什么原因呢。 prinft 是什么函数 是C语言的标准函数啊 当然不能输出加个w试下 to 笑天windows 2000 SP4谢谢 仔细看看MSDN的Unicode主题一个Unicode字符占用十六位许多Unicode字符第二字节是0所以输出错误是正常的注意_t族函数不是标准c库函数只是微软定义的所谓通用函数 楼主应该好好看看unicode的相关知识啊 对话框之间的问题 VC 6.0自带的install shield问题 请问如和把程序改成英文版的? TRACE("11");这个函数如何使用呀,就是在调试的时候如何看到那? printf与messagebox 散分! 关于new和malloc为什么一个行一个不行呢? COleDateTime和time_t的问题? 没人能解决这个简单的问题吗 flywhc(午夜蓝调) 看过来!!!!!!!!!! 请问:单文档怎样在启动的时候最大化? 第一次写网络收发的程序,出现了许多问题,大家看看
wprintf("----------------%s\n", L"不一栽");
就这样写: L 换成 _T
如果程序中定义 _UNICOUDE 和 UNICODE 的话,下面这段程序就是宽字符版,如果不定义程序是单字符版。_tprintf(_T("----------------%s\n"), _T("不一栽"));
就这样写: L 换成 _T
如果程序中定义 _UNICOUDE 和 UNICODE 的话,下面这段程序就是宽字符版,如果不定义程序是单字符版。_tprintf(_T("----------------%s\n"), _T("不一栽"));
这个不是很明白。可以说得更详细一些吗?我编译时提示:'_tprintf' : undeclared identifier
wprintf(L("("----------------%s\n"), L"不一栽");如果没有定义_UNICOUDE 和 UNICODE 的话(也就是单字符版本char),上面语句编译器解释为
printf("----------------%s\n", "不一栽");你就可以只能维护一个版本的代码,而不是两个版本的代码.
windows 2000 SP4谢谢
一个Unicode字符占用十六位许多Unicode字符第二字节是0
所以输出错误是正常的
注意_t族函数不是标准c库函数只是微软定义的所谓通用函数