注册 登录
编程论坛 C++教室

问一个字符char的问题

夕野先生 发布于 2010-06-01 15:58, 1227 次点击
有一个程序,其中:
char c4='\101',c5='\116';
cout<<c4<<' '<<c5;

这的'\101','\116'是代表什么?是ASCII码吗?但是ASCII码里面101和116是e和t,但输出的是A和N,怎么回事?
10 回复
#2
ciweitou1632010-06-01 18:22
八进制...
#3
lijm19892010-06-01 20:12
去了解下有关转义字符的资料,就明白了。
  转义字符 意义 ASCII码值(十进制)  
       \a 响铃(BEL) 007   
        \b 退格(BS) 008   
        \f 换页(FF) 012   
        \n 换行(LF) 010   
        \r 回车(CR) 013  
       \t 水平制表(HT) 009   
        \v 垂直制表(VT) 011   
        \\ 反斜杠 092  
       \? 问号字符 063  
       \' 单引号字符 039  
       \" 双引号字符 034
      \0 空字符(NULL) 000  
       \ddd 任意字符 三位八进制
      \xhh 任意字符 二位十六进制

反正不是十进制。。。
#4
2010-06-01 22:40
'\101','\116'   3位8进制
#5
jjg2010-06-01 22:47
转义符'\'后面接一个八进制数,用于表示ASCII码等于该值的字符。
#6
huxiangwenhu2010-06-01 22:51
转义字符,输出\入格式
#7
Isilendil2010-06-02 00:41
三位八进制数,转换成十进制后,去ASCII码字符集里找对应的字符吧
#8
最近不在2010-06-03 09:08
程序代码:
// Note:Your choice is C++ IDE
#include <iostream>
using namespace std;
int main()
{
    char c1 = 101, c2 = 116;        //这里才是10进制,通过类型转换为char型,其表现形式为8位2进制数,
    char c4 = '\101', c5= '\116';      //转义字符,规定为8进制
  
//等价于 char c4 = 63, c5 = 78;
  
//char char c4 = 'A';
   
//   \101与A基本就是等价的而由65得出的A是类型转换得出的
   
    cout<<c1<<' '<<c2<<endl;       //e t
    cout<<c4<<' '<<c5<<endl;    //A N
   
    cout<<(int)'A'<<endl;    //输出65,默认输出为10进制处理
    cout << showbase << oct <<(int)'A' << endl;     //输出8进制表示的A数字值
    cout << showbase << hex <<(int)'A'<< endl;         //输出16进制表示的A数字值
   
    return 0;
}

        转义字符     意义                 ASCII码值(十进制)  8进制
       \a             响铃(BEL)             007               \7
        \b             退格(BS)             008               \10
        \f             换页(FF)             012               \14
        \n             换行(LF)             010               \12
       \ddd         任意字符 三位八进制
      \xhh         任意字符 二位十六进制
#9
2010-06-03 09:59
还不结?
#10
gaoce2272010-06-05 14:35
“\ddd”1到3位八进制数所代表的字符。例如,“\101”代表ASCII码(八进制数)为101的字符‘A’。八进制101相当于十进制65。
详细请查阅“字符型数据”章节。
#11
南国利剑2010-06-05 14:58
转义字符后面跟的是八进制数
1