转意字符的使用。疑问

来源:百度知道 编辑:UC知道 时间:2024/04/29 17:42:39
printf("\tfirst\b\b\bst\\\r\'NO.1\'");

屏幕上的输出结果..

我以为是这样:NO.1frst\


对/t不能理解,这上面写的是,横向跳格(8位为一格,光标跳到下一格起始位置,如第9位或第17位)这句话严重不理解。大囧

'NO.1'空格fist\

我的机上运行结果是:'NO.1' fist\
用的是VS2005编译的

\t是指跳到下一个制表位的启始(8位空格为一个制表位)
假设将屏幕上的字符从左到右分配标记为1 - 80
则,如果光标处理1~8位置,\t会把光标跳到9位置
如果处理9~16位置,则\t会跳到17位置
其它位置同理可推

\r是回到行首(不换行)

输出为'NO.1'空格fist\
解释:\t一个制表符默认为8个字符.这样光标到了第9列.
first
\b\b\b三个退格符.这样就清除了tsr 三个字符,光标也到了第6列.
st
\\为\
\r为回车.但并不换行,因为换行是\n.
所以光标回到了第一列.
'
NO.1
'
这样屏幕是看到的就是'NO.1'空格fist\

\tfirst\b\b\bst\\\r\'NO.1\'

\t 是一个 调到下个制表位 一个制表位是8格 包含前一个位置
first 是一个
\b \b\b都是转义字符
st是
\\表示\
\r是一个转义字符
\'代表芯号
所以应该是 first st\ NO.1

很简单 你自己在编译器编程序的时候 盯着光标 然后按 Tab键 看看光标怎么动就知道了