首页 > 编程语言 >C\C++的转义字符

C\C++的转义字符

时间:2023-11-10 15:00:39浏览次数:27  
标签:11 字符 00 输出 C++ 转义字符 字符串 格式

所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
  转义字符 意义 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 任意字符 二位十六进制

\a:蜂鸣,响铃
\b:回退:向后退一格
\f:换页
\n:换行,光标到下行行首
\r:回车,光标到本行行首
\t:水平制表
\v:垂直制表
\\:反斜杠
\':单引号
\":双引号
\?:问号
\ddd:三位八进制
\xhh:二位十六进制
\0:空字符(NULL),什么都不做
注:
1,\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。
2,\n其实应该叫回车换行。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标。
3,\t 光标向前移动四格或八格,可以在编译器里设置
4,\' 在字符里(即单引号里)使用。在字符串里(即双引号里)不需要,只要用 ' 即可。
5,\? 其实不必要。只要用 ? 就可以了(在windows VC6 和tc2 中验证)。 

格式控制符参考:

格式输出字符:printf

使用:向终端输出若干个类型任意的数据。

形式:printf (格式控制符,输出列表)

说明:

格式控制符:% 格式说明引导符。

- 指定左对齐输出。

0 指定空位填零。

m.n 指定输出域宽度及精度。

l.h 输出长度的修正。

格式字符 指定输出的数据类型。

说明:

格式字符:指定输出项的数据类型和输出格式。

d 有符号十进制整数。

o 无符号八进制数。

x 无符号十六进制数。(小写的x格式中用小写字母a,b,c,d,e,f来表示10到15之间的数,大写的X则用大写的ABCDEF来表示10到15之间的数)

u 不带符号的十进制整数。

基本整型:两个字节,十六个bit(位)

11 11 11 11 11 11 11 11 等于 65535.

11 11 11 11 11 11 11 10 等于 -2.

负数的第一位(符号位)为1。负数的补码怎么得到:原码取反加一。2的二进制数为:00 00 00 00 00 00 00 10,取反就等于11 11 11 11 11 11 11 01,然后加1,二进制数逢二进一,所以就得出-2 的二进制代码。

有符号的整型数可以用 %d 输出。

无符号的整型数可以用 %u 输出。

电脑里存的数字都是二进制数,最高位是符号位还是数据位,可以由输出格式符来控制。

二进制数转换八进制数:三个 1 对应一个 7 。

二进制数錾十六进制数:四位二进制对应一位十六进制,四个1 对应一个 f。

说明:

格式字符:c 输出一个字符。

s 输出一个字符串。

e 以指数形式输出实型数。

f 以小数形式输出实型数。

g 自动决定输出格式为e和f中较短的一种,不打印无效的零。

% 输出%。

注意:对于单精度数,使用 %f 格式符输出时,仅前7位是有效数字,小数6位。

对于双精度数,使用 %lf 格式符输出时,前16位是有效数字,小数6位。

长度修正符

l:对整型指定长整型long

例:%ld , %lx , %lo , %lu

对实型指定双精度double

例:%lf

h:只用于整型的格式字符修正为short

例:%hd , %hx , %ho , %hu

对64位整数的输入输出,在POJ上的C++环境下(即VC++),64位整数是:
__int64
输入输出格式为”%I64d”.

在G++环境下, 64位整数是
long long
输入输出格式为”%lld”.

域宽及精度的描述

M:域宽,即对应的输出项在输出设备上所占字符数

若:实际数据宽度>M,按实际数据宽度输出。

实际数据宽度<M,左边补空。

N:精度,说明输出的实型数的小数位数。

几点说明:

编译程序只是检查printf 函数的调用形式,不分析格式控制字符串,如果格式字符与输出项的类型不匹配,不进行类型转换。(输出的数为随机)

格式字符要用小写字母。

格式控制字符串中可以包含转义字符。

格式控制字符串中的普通字符则原样输出。

输出项的参数除了常数、变量外还可以是表达式、函数调用。

%g,%f和%e这三个格式用于打印浮点值。
                  %g格式用于打印那些不需要按列对齐的浮点数特别有用。其作用有二:
                  一,去掉该数尾多余的零(没有达到六位的数)
                  二,保留六位有效数字(多余六位的)
                  %e格式用于打印浮点数时,一律显示地使用指数形式:例如:输出圆周率时是:3.141593e+00
                 两者的区别:
                 %g格式打印出的数是总共6位有效数字
                 %e格式打印出小数点后的6位有效数字
                 %f禁止使用指数形式来表示浮点数。因此圆周率输出为:3.141593
                (但注意它的精度要求:也是小数点后6位有效数字)
                (8)%%格式用于打印一个%字符。
               (9)%E和%G只是在输出时用大写字母(E)代替了小写字母(e)

                  输出正负号的技巧,例如:
                printf("%+d %+d %+d\n",-5,0,5);
                只要在中间加个“+”号就行。作用是输出符号位(即,数的正负号)
                如果不希望正数的前面出现‘+’号,可用下面的方法
                只要在中间加个“ ”号(即:空格)就行。例如:
                作用:如果一个数是非负数,就在它的前面插入一个空格。
                int i;
                for(i=-3;i<=3;i++)
                        printf("% d\n",i); //注意%和d之间有一个空格

                sscanf()的使用技巧:
                分解字符串,很多功能都需要正则表达式的知识,所以就介绍一下最简单的几种用sscanf来分解字符串 的用法。
                1.
                char str[100],str1[100],str2[100];
                gets(str);
                sscanf(str,”%s%s”,str1,str2);
                将读入的一整行字符串按空格,制表符或回车符分割成两个字符串。
                2
                取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。
         sscanf("123456 ", "%4s", str);



标签:11,字符,00,输出,C++,转义字符,字符串,格式
From: https://blog.51cto.com/emanlee/8299590

相关文章

  • C/C++字符的使用
    在C/C++中有字符和字符数组,分别对应char和char[]。其中字符数组也称字符串。查阅头文件stdint.h可以看到如下两句关键的语句:typedefsignedcharint8_t;typedefunsignedcharuint8_t;那么char对应的是哪一个?网上找不到确切说法,据说这个和编译器有关。经过实验表明......
  • 静态代码分析工具Helix QAC 2023.3:将100%覆盖MISRA C++2023规则
    静态代码分析工具HelixQAC2023.3:将100%覆盖MISRAC++:2023®规则 HelixQAC2023.3预计将于2023年第四季度发布的新MISRAC++®指南,将100%覆盖MISRAC++:2023®规则。 此外,此版本扩展了对C++20语言支持,并改进了PerforceValidate平台和HelixQAC与Validate的集成,包括其他......
  • C++函数分文件编写
    1、创建.h后缀名的头文件并且声明需要调用的函数,并且给出通用输出流和输出流#include<iostream>usingnamespacestd;voidasd();2、创建.cpp后缀名的源文件并且调用刚刚定义的头文件#include"asd.h"voidasd(){ cout<<"HelloWorld!"<<endl;}3、在源文件中......
  • C++中获取数组长度
    #include<iostream>usingnamespacestd;template<classT>intlength(T&arr){//cout<<sizeof(arr[0])<<endl;//cout<<sizeof(arr)<<endl;returnsizeof(arr)/sizeof(arr[0]);}intmain(){i......
  • C++11 并发编程基础(一):并发、并行与C++多线程
    C++11标准在标准库中为多线程提供了组件,这意味着使用C++编写与平台无关的多线程程序成为可能,而C++程序的可移植性也得到了有力的保证。另外,并发编程可提高应用的性能,这对对性能锱铢必较的C++程序员来说是值得关注的。1.何为并发并发指的是两个或多个独立的活动在同一时段内发生......
  • C++ ubuntu install libpq-fe.h PGconn PQconnectdb PGresult PQexec PQnfields P
    1.Installlibpq-devsudoaptinstalllibpq-devlocatelibpq-fe.h/usr/include/postgresql/libpq-fe.h 2.main.cpp#include<chrono>#include<fstream>#include<iomanip>#include<iostream>#include<sstream>#include<......
  • vs c++ 调试技巧
    C语言基础入门48篇_04VS调试入门https://blog.csdn.net/Dasis/article/details/121397288栈回溯——获取当前线程内ebp与call_rethttps://www.cnblogs.com/qinghuan190319/p/15378357.htmlvs中c++的反汇编分析https://blog.nowcoder.net/n/70946cb0519a4bcab57097a0764990d1?......
  • 【每日例题】蓝桥杯 c++ 报纸页数
    报纸页数题目本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。×星球日报和我们地球的城市早报是一样的,都是一些单独的纸张叠在一起而已。每张纸印有4版。比如,某张报纸包含的4页是:5,6,11,12,可以确定它应该是最上边的第2张报纸。我们在太空中捡到了一张×......
  • 二、认识C++
    二、认识C++1、项目创建1)创建项目①控制台应用②创建项目及解决方法③项目创建成功页面2、内容输出#include<iostream>intmain(){std::cout<<"认识C++\n";//可以理解为把双引号中的字符串,通过<<流入到了屏幕上}"\n"表示换行,若要输入\n,需要输出"\n"......
  • c++数组最大长度(干货)
    ​    在编译器里,每种类型的变量定义数组的时候都有一个数组大小,而这个大小对于不同的变量而言有不同的上限,这里的最大长度更准确的来说应该是系统堆的最大值。字符类型数组一个字符占1byte大小,八位,所以,理论上,在一个64位的编译器中,一个字符数组的最大长度是2147483648,......