一个输出ASCII字符不正确的程序,请大家指教
请大家看如下一段程序。其中1可以在命令行窗口输出正确的结果,而2则不可以。请问各位大神到底是什么原因造成的?
我直接把整数176转换成字符再输出字符也不行。我用的是XPSP3+VS2005。
谢谢大家。
#include "windows.h"
#include <tchar.h>
#include <iostream>
#include <string>
using namespace std;
void main()
{
char szNum[64];
memset(szNum, '\0', sizeof(szNum));
_stprintf( szNum, _T("%s"), "°"); ------ (1)
_stprintf( szNum, _T("%c"), '°'); ------ (2)
cout<<string(szNum)<<endl;
}
[解决办法]
是多字节编码吧 你打出来strlen("°")返回值就知道了
[解决办法]
SetConsoleCP