为何我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 类型的问题呢?

回答:

你的代码没问题,关了另一个文件。还有不要用DEVCPP,换VS或者直接用Linux+GCC。
图片描述

回答:

devcpp很适合用来做算法题目的。小巧很多,而且可以用很新的gcc版本。我以前经常用。vs2015 community太大了,装硬盘要占用20多G呢。
你先试一下printf("%c",a)行不行。
可能和你系统设置的代码页有关系。你右键单击那个cmd窗口标题栏,进去看一下系统编码是什么。或者打开一个命令行窗口,输入chcp回车,把结果贴出来

回答:

出现这么不科学的事,把L1-011.cpp也贴出来。

以上是 为何我C++中&#x27;\0&#x27;在控制台输出的时候变成a了? 的全部内容, 来源链接: utcz.com/p/190876.html

回到顶部