这里用的是转义符'\'来处理的,转义符后面要求的是八进制或十六进制数的,所以他把你的 c4='\101'理解成八进制了,而'A'的ascii码的八进制就是101,那个c5='\116'同理,所以,你要想这样定义的话,必须用八进制的数,当然也可以用十六进制数来表示,但那要在数的前面加x的.例如: c4='\145'(c4='e';)(八进制),c5='\x74'(c5='t';)(十六进制)
其实还是用 char c4='e',c5='t';
'\101'中的101你是按十进制理解的,而计算机是按八进制理解的。
对于你想要的结果,可以直接写成
char c4 = 101, c5 = 116;
\t是插入一个制表符, 这样就使得A和N输出在8字符的整倍数位置上.
\t\b的输出是这样的:首先在终端上输出一个制表符(相当于好几个空格的大空格)然后输出一个回退键(即相当于按一下键盘上的一个BACKSPACE键即回退键) 这样,前面输出的一个制表符就被删除了,所以你看到\T的空格效果,结果,就是直接在终端上输出了ab
#include <iostream>
using namespace std;
int main()
{char c1='a',c2='b',c3='c',c4='\101',c5='\116';
cout<<c1<<c2<<c3<<'\n';
cout<<"\t\b"<<c4<<'\t'<<c5<<'\n';
return 0;
}
#include <iostream>
using namespace std;
int main()
{char c1='C',c2='+',c3='+';
cout<<"I say: \""<<c1<<c2<<c3<<'\"';
cout<<"\t\t"<<"He says: \"C++ is very interesting!\""<< '\n';
return 0;
}