为何我C++中'\0'在控制台输出的时候变成a了?
不知道这是为什么
代码如下
#include <iostream>
#include <string>
#include <cstdio>
using namespace std;
int main()
{
char a='\0';
char b=' ';
cout<<"a:"<<a<<endl<<"b:"<<b<<endl;
return 0;
}
——————————————————2016.11.22更新问题
今晚回宿舍试了下,开机重新打开的dev,只打开了上次那个文件,如图
输出的还是a,然后我换VS试了一下,如图:
同样是a。
这是什么情况?
另外求推荐好用的C++,C的编译软件,一般做算法题用,不做什么大项目
换了Code::Blocks了还是一样的结果,这问题无解了?
——————————————————————————2016.11.23更新问题
使用printf("%c",a)
还是一样的结果
然后用chcp查了一下系统编码,是默认的GBK,换成UTF-8,但是我发现这样只能在当前窗口有效,重新打开又会恢复默认的GBK,于是我把.cpp文件换成UTF-8的编码,结果和原来一样,但是头文件前面多了中文字符。。这又是什么鬼
————————————————2016.12.3——————————————
今天又看了一下,先用字符串输出的,输出空字符,还以为正常了,换了char变量来存储之后,和以前一样
换成string来存储就正常了。
代码:
#include<iostream>
#include<math.h>
using namespace std;
int main(){
char b = '\0';
string c = "\0";
cout << "1 输出的值:" << b << endl;
cout << "2 输出的值:" << "\0" <<endl;
cout << "3 输出的值:" << c <<endl;
return 0;
}
这是不是char 和string 类型的问题呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你的代码没问题,关了另一个文件。还有不要用DEVCPP,换VS或者直接用Linux+GCC。
devcpp很适合用来做算法题目的。小巧很多,而且可以用很新的gcc版本。我以前经常用。vs2015 community太大了,装硬盘要占用20多G呢。
你先试一下printf("%c",a)行不行。
可能和你系统设置的代码页有关系。你右键单击那个cmd窗口标题栏,进去看一下系统编码是什么。或者打开一个命令行窗口,输入chcp回车,把结果贴出来
出现这么不科学的事,把L1-011.cpp也贴出来。