int b='a';
printf("可以输出");
cout << "下一层" << b << "下一层" << endl;
return 0;
结果是97;因为ASC码的关系,这一点大家都知道。
但当**int b;//未初始化
printf("可以输出");
cin>>b;//输入字符a
cout << "下一层" << b << "下一层" << endl;
return 0**;
结果是个无意义的值,不止是cin,连scanf也是如此,可见这是b里未初始化的数据,那么问题来了,为什么它没能
按照ASC码转成数值?它以什么形式被存,存到了哪里?
把cin>>b;改成b=cin.get();或声明b为char型即可。在我的编译器上输入‘a’时输出0,我觉得还是cin的输入异常处理机制导致的。你可以参考一下这个
http://www.cnblogs.com/A-Song/archive/2012/01/29/2331204.html
其实使用cin输入,因为你定义的是int型,所以输入必须是数值类型,凡是字母或其他字符cin都当作输入失败处理,输出b就是一个未知的数。