C语言格式控制和转义字符

 2024-03-06 05:03:18  阅读 0

目前支持以下格式

%c 单个字符

%d 个十进制整数

%f 十进制浮点数

%o 八进制数

%s 字符串

%u 无符号十进制数

%x 十六进制数

%%输出百分号%

如何显示二进制数:

使用函数:itoa(a,temp,2) /*temp为存储的二进制字符数组*/

格式描述可以有多个修饰符,用于指定显示宽度、小数点结尾、左对齐等:

- 左对齐

+ 在有符号的数字前添加“+”或“-”

0 字段宽度用前导零填充,而不是空格

字段宽度是一个整数,设置打印格式化字符串的最小字段。 精度是通过在小数点后添加一个数字来表示的。

给出每个转换说明符要输出的字符数。

注意:带有修饰符的显示可能无法正常工作

scanf格式控制说明

%d 十进制整数描述

%f 十进制浮点描述

%0 八进制整数描述

%x 十六进制整数描述

%c 单个字符

% * ml 或 h 格式字符

①格式字符的使用方式与函数中相同,有%d、%o、%x、%c、%s、%f、%e,没有%u格式或%g格式。

②您可以指定输入数据占用的列宽,系统会根据它自动截取所需的数据。 喜欢:

scanf(“%3d%3d”,&a,&b);

进入:

系统自动将 123 分配给 a,将 456 分配给 b。

③%后面的“*”附加说明符用于表示跳过其对应的数据。 例如:

scanf(“%2d%*3d%2d”,&a,&b);

如果您输入以下信息:。 将 12 分配给 a,将 67 分配给 b。 第二数据“345”被跳过并且不分配给任何变量。

④输入数据时不能指定精度,例如:

scanf(“%7.2f”,&a);

这是非法的。 您不能尝试输入:12345.67 来使a 的值为12345.67。

-------------------------------------------------- ----------------------------------

有关的:

输入数据流分离

① 根据格式字符的含义从输入流中获取数据。 当输入流中的数据类型不满足格式字符的要求时,此项视为结束。 喜欢:

scanf("%d%c%f",&a,&b,&c);

如果您输入以下信息:

.567

然后scanf函数接收数据时发现“r”类型不匹配,于是将“1234”转换为整数赋值给a,将“r”赋值给变量b,最后将“1234.567”转换为实数输入 data 并将其分配给 c 。

② 根据格式项中指定的字段宽度分隔数据项。 如语句:scanf("%2d%3f%4f",&a,&b,&c);

如果您输入以下信息:

2345

然后scanf函数在接收数据时根据域宽度将12分配给a,345分配给b,6789分配给c。

③隐藏分隔符。 空格、制表符('\t')和换行符('\n')都是C语言识别的数据分隔符。

④显示分隔符。 如果scanf函数的两个格式描述项之间存在一个或多个公共字符,那么在输入数据时,两个数据也必须用这一个或多个字符分隔。 如声明:

scanf(“a=%d,b=%f,c=%f”,&a,&b,&c);

那么输入数据应该是:

a=1234,b=67.8,c=98.123

-------------------------------------------------- ----------------------------------

关于scanf函数的进一步解释:

①scanf函数中的“格式控制”后面应该跟的是变量地址,而不是变量名。例如,如果a和b是整型变量,那么

scanf(“%d,%d”,a,b);

这是不正确的,“a,b”应该改为“&a,&b”。

② 如果“格式控制”字符串中除格式描述外还有其他字符,则在输入数据时应输入与这些字符相同的字符。 例如:

scanf(“%d,%d”,&a,&b);

输入时应输入:3, 4。3和4之间的逗号应与scanf函数中“格式控制”中的逗号相对应。 输入其他符号是错误的。

③以“%c”格式输入字符时,空格字符和转义字符均被输入为有效字符。

scanf(“%c%c%c”,&c1,&c2,&c3);

例如,输入:abc。 将字符“a”分配给c1,将字符(空格)“ ”分配给c2,将字符“b”分配给c3。

④ scanf 中不使用 U 说明符。 使用 d、o、x 说明符输入类型数据。

所有转义字符的 ASCII 码都可以用“\”加一个数字(通常是八进制数)来表示。 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 任意两位十六进制字符

字符常数

字符常量表示的值是字符变量可以包含的值。 我们可以使用 ASCII 表达式来表示字符常量,或者使用带反斜杠的单引号来表示转义字符。

'A', '\x2f', '\013';

其中:\x表示后面的字符是十六进制数字,\0表示后面的字符是八进制数字。

注意:在 Turbo C 2.0 中,字符常量表示 -128 到 127 范围内的数字,除非您将其声明为,在这种情况下为 0 到 255。

上面我们看到的\x、\n、\a等都被称为转义字符,它们告诉编译器需要以特殊的方式处理它们。 所有转义字符及其对应含义如下:

转义字符描述

\' 撇号

\ 双引号

\\ 反斜杠

\0 空字符

\0nnn 八进制数

\一个声音字符

\b 退格字符

\f 换页符

\n 换行符

\r 回车符

\t 水平制表符

\v 垂直制表符

\x 十六进制字符

标签: 字符 格式 输入

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码