以前刚学C语言,用printf的时候经常出现一个人头的乱码。后来不知怎么就再也没碰到过了。
但是最近在程序里又碰到了,而且有各式各样的乱码,扑克牌里的方块,红桃,黑桃等,应有尽有。
我解决了其中的一个是因为sscanf函数中多了格式控制。
例sscanf(buffer,"%s %s %s",s1,s2);
去掉一个%s就好了,但是程序里其它地方还是会有乱码。
特地来和大家讨论一下,C语言中的乱码到底是怎么回事?
Ascii码有128个字符,一些代表1,2,3..,a,b..等字符,有些是特殊字符,就是你说的乱码,还有就是一些不可见的字符。以下的程序帮助你看到所有这些字符,查查资料也都有这方面的说明的。
#include <iostream>
using namespace std;
int main( void )
{
for (int i = 0; i<128;i++)
cout << static_cast<char>(i);
cout << endl;
system("pause");
}
一般来说是因为格式控制不当所引起的.
人脸的ASCII码是1 黑圆点的ASCII码是2, 红桃的ASCII码是3..................
个人觉得C++的cout和cin比较好用.
是啊~~
你可以自己编个程序~
显示出所有的128字符~~
可以包含所有未见字符~~~
就是简单的输出语句~~~
好像是随机给的,,你要输出的数超过范围!
从cfaultAndFailure中摘得一个指针问题,挺有意思的!()
检查下代码:-)
把代码再好好看看,不要那么马马虎虎,
再者就是照楼上有人说的, junguo(junguo)
使用不当