c语言格式化说明符(输出格式)

合集下载

C语言输入输出函数printf与scanf的用法格式

C语言输入输出函数printf与scanf的用法格式

C 语言输入输出函数printf 与scanf 的用法格式printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入设备(键盘)上读数据。

下面详细介绍这两个函数的用法。

一、printf()函数printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。

在编写程序时经常会用到此函数。

printf()函数的调用格式为:printf("<格式化字符串>", <参量表>);其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式控制字符, 以"%"开始, 后跟一个或几个控制字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,可以是常量、变量或表达式,其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。

例如:printf("a=%d b=%d",a,b);1. 格式控制符Turbo C2.0提供的格式化规定符如下: 格式控制字符参量表正常字符━━━━━━━━━━━━━━━━━━━━━━━━━━符号作用──────────────────────────%d 十进制有符号整数%u 十进制无符号整数%f 浮点数%s 字符串%c 单个字符%p 指针的值%e,%E 指数形式的浮点数%x, %X 无符号以十六进制表示的整数%o 无符号以八进制表示的整数%g,%G 自动选择合适的表示法━━━━━━━━━━━━━━━━━━━━━━━━━━printf的附加格式说明字符字符说明l 用于长整型数或双精度实型,可加在格式符d、o、x、u和f前面m(代表一个正整数据最小输出显示宽度数)n(代表一个正整数)对实数,表示输出n位小数;对字符串,表示截取的字符个数。

C语言的格式输入输出

C语言的格式输入输出


字符输入函数

getchar ()
无参数 函数值为从输入设备接收的字符
#include <stdio.h> int main() { char ch;
printf("Press a key and then press Enter:");
ch = getchar(); printf("You pressed "); putchar(ch); putchar('\n'); return 0;
格式输入函数
输入数据时,遇以下情况时该数据认为结束

遇空格、回车Biblioteka TAB 键 遇宽度 :%3d 遇非法输入
scanf格式字符
d 以带符号十进制形式输入整型数据
o x c s
f e
以八进制无符号形式输入(无前导0) 以十六进制无符号形式输入(无前导0x) 以字符形式输入单个字符 输入字符串,以非空字符开始,遇第一个 空白字符结束 以小数形式输入浮点数 以标准指数形式输入
printf("printf WITH width and precision specifications:\n"); printf("%5.2f\n%6.1f\n%3.0f\n", f1, f2, f3); printf("%5d\n%6d\n%3d\n", n1, n2, n3);}
格式输入函数
scanf附加格式说明符
l
L h m *
加在d、o、x、u前:输入长整型 加在f、e 前:输入双精度型 加在f、e 前:输入long double型 加在d、o、x 前:输入短整型 表示数据占用的宽度 本输入项在读入后不赋给相应的变量

c语言格式转换说明符

c语言格式转换说明符

c语言格式转换说明符
C语言中的格式转换说明符用于指定在使用printf和scanf等函数时,如何格式化输入输出的数据。

下面是一些常用的格式转换说明符:
1. %d,用于输出十进制整数,也可以用于输入十进制整数。

2. %f,用于输出浮点数,也可以用于输入浮点数。

3. %c,用于输出字符,也可以用于输入字符。

4. %s,用于输出字符串,也可以用于输入字符串。

5. %x,用于输出十六进制数,也可以用于输入十六进制数。

6. %o,用于输出八进制数,也可以用于输入八进制数。

7. %u,用于输出无符号十进制整数,也可以用于输入无符号十进制整数。

8. %e, %E,用于以指数形式输出浮点数,也可以用于输入以指数形式的浮点数。

9. %g, %G,根据值的大小决定使用%f或%e来输出浮点数,也可以用于输入浮点数。

除了上述常用的格式转换说明符外,C语言还提供了一些修饰符,例如:
%5d,表示输出宽度为5的整数。

%-10s,表示输出左对齐的宽度为10的字符串。

%.2f,表示输出小数点后两位的浮点数。

需要注意的是,格式转换说明符需要与要输出的数据类型相匹配,否则会导致输出错误。

另外,在使用scanf函数时,需要特别注意格式转换说明符与输入数据的匹配,以避免出现错误。

总之,格式转换说明符在C语言中扮演着非常重要的角色,它们可以帮助我们按照指定的格式输出和输入数据,是C语言中不可或缺的部分。

希望这些信息能够帮助到你。

C语言格式输出

C语言格式输出

C语言输出格式总结C语言输出格式总结1 一般格式printf(格式控制,输出表列)例如:printf("i=%d,ch=%c\n",i,ch);说明:(1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:①格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。

②普通字符,即需要原样输出的字符。

(2)“输出表列”是需要输出的一些数据,可以是表达式(3) printf函数的一般形式可以表示为printf(参数1,参数2,……,参数n)功能是将参数2~参数n按参数1给定的格式输出2 格式字符(9种)(1)d(或i)格式符。

用来输出十进制整数,有以下几种用法:①%d,按整型数据的实际长度输出。

②%md,m为指定的输出字段的宽度。

如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。

③%ld(%mld 也可),输出长整型数据。

例如:long a=123456;printf("%ld",a);(2)o格式符,以八进制数形式输出整数。

格式:%o,%mo,%lo,%mlo都可。

(3)x(或X)格式符,以十六进制数形式输出整数。

格式:%x,%mx,%lx,%mlx都可。

(4)u格式符,用来输出unsigned型数据,即无符号数,以十进制数形式输出。

格式:%u,%mu,%lu 都可。

参见:li4-3.c(5)c格式符,用来输出一个字符。

格式:%c,%mc都可。

(6)s格式符,用来输出一个字符串。

格式:%s,%ms,%-ms,%m.ns,%-m.ns都可。

(7)f格式符,用来输出实数(包括单、双精度),以小数形式输出。

格式:%f,%m.nf,%-m.nf 都可。

注意:单精度实数的有效位数一般为7位,双精度为16位。

(8)e(或E)格式符,以指数形式输出实数。

格式:%e,%m.ne,%-m.ne都可。

(9)g(或G)格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种)。

c语言printf()输出格式大全

c语言printf()输出格式大全

c 语言printf() 输出格式大全1 •转换说明符" e.g. "% 6.2f"# :对c,s,d,u 类无影响;对o 类,在输出时加前缀o ;对x 类, 在输出时加前缀Ox ;对e,g,f类当结果有小数时才给出小数点。

3.格式字符串(格式)[标志][输出最少宽度][.精度][长度]类型 "%-md":左对齐,若m 比实际少时,按实际输出。

"%m.ns":输出m 位,取字符串(左起)n 位,左补空格,当n>m or m省略时m=ne.g."%7.2s"输%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)%c 字符%d 有符号十进制整数%f 浮点数(包括float 和 doulbe)%e(%E) 浮点数指数输出[e-(E-)记数法]%g(%G) 浮点数不显无意义的零"0"%i 有符号十进制整数 (与%d 相同)%u 无符号十进制整数%o 八进制整g. 0123%x(%X) 十六进制整数0f(0F)e.g.0x1234%p 指针%s 字符串%% "%"左对齐: "-" e.g. "%-20s"右对齐:"+" e.g."%+20s"2.标志入CHINACH"输出%m.nf":输出浮点数,m为宽度,n为小数点右边数位e.g. "%3.1f"输入3852.99输出3853.0长度:为h短整形量,1为长整形量printf的格式控制的完整格式:% - 0 m.n I或h格式字符下面对组成格式说明的各项加以说明:①%表示格式说明的起始符号,不可缺少。

②-:有-表示左对齐输出,如省略表示右对齐输出。

③0:有0表示指定空位填0,如省略表示指定空位不填。

C语言-常用格式化符号

C语言-常用格式化符号

C语⾔-常⽤格式化符号格式化符号描述%lf输出double浮点数%ld输出long整数%s输出字符串%d输出整型数字(有符号)%p输出指针地址(⼗六进制)%c输出单个字符%F/f以浮点数输出单、双精度实数%E/e以指数形式输出单、双精度实数%x输出16进制(abcdef表⽰)%X输出16进制(ABCDEF表⽰)%u输出整型数字(⽆符号)%g是%f和%e的简写%G是%F和%E的简写格式控制符形式%[{+,-}[0][{m,m.n}],[{l,h}]] <格式控制符>%: 格式控制的起始符号,必不可少。

格式控制起始位置+/-:对齐标志, +:右对齐,-:左对齐,缺省:右对齐int numA = 123456;printf("%12d\n", numA); // + 右对齐(默认右对齐不⽤写“+”printf("%-12d\n", numA); // - 左对齐// 123456//1234560:实际长度没有格式控制的长度,⽤“0”补全内容int numA = 123456;printf("%012d\n", numA); // + 右对齐(默认右对齐不⽤写“+”// 输出 000000123456m/m.n: m输出展位宽,n表⽰取标识符的多少位输出-占位长度float numB = 12333.456789;printf("%3.2f\n", numB); // 3.2 其中3是整数部分位宽, .2浮点数⼩数部分要求的位宽printf("%12.2f\n", numB); // 12.2 其中12是整数部分位宽 .2浮点数⼩数部分要求的位宽// 如果给出数据超过则全部输出没有超过则默认右对齐空位输出// 12333.46// 12333.46。

c语言格式控制字符串详解

c语言格式控制字符串详解

c语言格式控制字符串详解在C语言中,格式控制字符串(Format Control String)主要用于`printf`和`scanf`等函数中,用于控制数据的输出和输入格式。

格式控制字符串由一系列的格式说明符组成,用于指定输出或输入数据的格式。

以下是格式控制字符串中的一些主要组成部分:1. %d:用于输出或输入整数类型的数据。

2. %f:用于输出或输入浮点数类型的数据。

3. %c:用于输出或输入字符类型的数据。

4. %s:用于输出或输入字符串类型的数据。

5. %p:用于输出或输入指针类型的数据。

6. %u:用于输出或输入无符号整数类型的数据。

7. %o:用于输出或输入八进制无符号整数类型的数据。

8. %x 或 %X:用于输出或输入十六进制无符号整数类型的数据。

9. %e 或 %E:用于输出科学计数法的浮点数。

10. %g 或 %G:用于自动选择`%f`或`%e`,取决于哪个更短。

11. %%:用于输出一个百分号。

此外,还有一些格式说明符可以用来指定输出的宽度、精度和标志等,例如`%6d` 表示一个宽度为6的整数,`%.2f` 表示一个小数点后两位的浮点数,`%-6s` 表示一个左对齐、宽度为6的字符串等等。

以下是一个简单的例子,演示了如何使用格式控制字符串:```cinclude <>int main() {int a = 123;float b = ;char c = 'A';char str[] = "Hello, world!";printf("整数:%d\n", a); // 输出整数a的值printf("浮点数:%f\n", b); // 输出浮点数b的值printf("字符:%c\n", c); // 输出字符c的值printf("字符串:%s\n", str); // 输出字符串str的值return 0;}```在这个例子中,我们使用了不同的格式说明符来控制输出的数据类型和格式。

c语言基本的输入输出格式

c语言基本的输入输出格式

C语言基本的输入输出格式1. 引言C语言是一种广泛应用于系统程序开发和嵌入式系统的高级编程语言。

在C语言中,输入和输出是程序与用户或外部设备之间进行交互的重要方式。

本文将详细介绍C语言中基本的输入输出格式,包括标准输入输出函数、格式化输入输出函数以及文件输入输出函数。

2. 标准输入输出函数C语言提供了一些标准的输入输出函数,用于从键盘读取用户输入或将输出显示在屏幕上。

2.1 printf函数printf函数用于将格式化的数据输出到标准输出设备(通常是屏幕)。

它的基本语法如下:int printf(const char *format, ...);其中,format是一个字符串,用于指定输出的格式,后面的参数是要输出的数据。

下面是一些常用的格式控制符:•%d:以十进制形式输出整数。

•%f:以浮点数形式输出。

•%c:以字符形式输出。

•%s:以字符串形式输出。

示例代码:#include <stdio.h>int main() {int age = 20;float height = 1.75;char gender = 'M';char name[] = "John";printf("Name: %s\n", name);printf("Age: %d\n", age);printf("Height: %.2f\n", height);printf("Gender: %c\n", gender);return 0;}运行结果:Name: JohnAge: 20Height: 1.75Gender: M2.2 scanf函数scanf函数用于从标准输入设备(通常是键盘)读取数据。

它的基本语法如下:int scanf(const char *format, ...);其中,format是一个字符串,用于指定输入的格式,后面的参数是用于接收输入数据的变量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c语言格式化说明符1.1.1 格式化输入输出函数一、printf()函数printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。

在编写程序时经常会用到此函数。

printf()函数的调用格式为:printf("<格式化字符串>", <参量表>);其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。

参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。

1. 格式化规定符Turbo C2.0提供的格式化规定符如下:━━━━━━━━━━━━━━━━━━━━━━━━━━符号作用——————————————————————————%d 十进制有符号整数%u 十进制无符号整数%f 浮点数%s 字符串%c 单个字符%p 指针的值%e 指数形式的浮点数%x, %X 无符号以十六进制表示的整数%0 无符号以八进制表示的整数%g 自动选择合适的表示法━━━━━━━━━━━━━━━━━━━━━━━━━━说明:(1). 可以在"%"和字母之间插进数字表示最大场宽。

例如: %3d 表示输出3位整型数, 不够3位右对齐。

%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,小数点占一位, 不够9位右对齐。

%8s 表示输出8个字符的字符串, 不够8个字符右对齐。

如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。

但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出; 若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。

另外, 若想在输出值前加一些0, 就应在场宽项前加个0。

例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度为4位。

如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度, 小数点前的数字代表最小宽度。

例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。

若大于9, 则第9个字符以后的内容将被删除。

(2). 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。

例如: %ld 表示输出long整数%lf 表示输出double浮点数(3). 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可说明输出为左对齐, 否则为右对齐。

例如: %-7d 表示输出7位整数左对齐%-10s 表示输出10个字符左对齐2. 一些特殊规定字符━━━━━━━━━━━━━━━━━━━━━━━━━━字符作用——————————————————————————\n 换行\f 清屏并换页\r 回车\t Tab符\xhh 表示一个ASCII码用16进表示,其中hh是1到2个16进制数━━━━━━━━━━━━━━━━━━━━━━━━━━例1#include<stdio.h>#include<string.h>int main(){char c, s[20], *p;int a=1234, *i;float f=3.141592653589;double x=0.12345678987654321;p="How do you do";strcpy(s, "Hello, Comrade");*i=12;c='\x41';printf("a=%d\n", a); /*结果输出十进制整数a=1234*/printf("a=%6d\n", a); /*结果输出6位十进制数a= 1234*/printf("a=%06d\n", a); /*结果输出6位十进制数a=001234*/printf("a=%2d\n", a); /*a超过2位, 按实际值输出a=1234*/printf("*i=%4d\n", *i); /*输出4位十进制整数*i= 12*/printf("*i=%-4d\n", *i); /*输出左对齐4位十进制整数*i=12*/printf("i=%p\n", i); /*输出地址i=06E4*/printf("f=%f\n", f); /*输出浮点数f=3.141593*/printf("f=6.4f\n", f); /*输出6位其中小数点后4位的浮点数f=3.1416*/printf("x=%lf\n", x); /*输出长浮点数x=0.123457*/printf("x=%18.16lf\n", x);/*输出18位其中小数点后16位的长浮点数x=0.1234567898765432*/printf("c=%c\n", c); /*输出字符c=A*/printf("c=%x\n", c); /*输出字符的ASCII码值c=41*/printf("s[]=%s\n", s); /*输出数组字符串s[]=Hello, Comrade*/printf("s[]=%6.9s\n", s);/*输出最多9个字符的字符串s[]=Hello,Co*/printf("s=%p\n", s); /*输出数组字符串首字符地址s=FFBE*/printf("*p=%s\n", p); /* 输出指针字符串p=How do you do*/printf("p=%p\n", p); /*输出指针的值p=0194*/getch();retunr 0;}上面结果中的地址值在不同计算机上可能不同。

例1.中第一条语句#include<stdio.h>的含义是调用另一个文件stdio.h, 这是一个头文件, 其中包括全部标准输入输出库函数的数据类型定义和函数说明。

二、scanf()函数scanf()函数是格式化输入函数, 它从标准输入设备(键盘) 读取输入的信息。

其调用格式为:scanf("<格式化字符串>", <地址表>);格式化字符串包括以下三类不同的字符;1. 格式化说明符: 格式化说明符与printf()函数中的格式说明符基本相同。

2. 空白字符: 空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。

3. 非空白字符: 一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。

地址表是需要读入的所有变量的地址, 而不是变量本身。

这与printf()函数完全不同, 要特别注意。

各个变量的地址之间同","分开。

例2:main(){int i, j;printf("i, j=?\n");scanf("%d, %d", &i, &j);}上例中的scanf()函数先读一个整型数, 然后把接着输入的逗号剔除掉, 最后读入另一个整型数。

如果","这一特定字符没有找到, scanf()函数就终止。

若参数之间的分隔符为空格, 则参数之间必须输入一个或多个空格。

说明:(1). 对于字符串数组或字符串指针变量, 由于数组名和指针变量名本身就是地址, 因此使用scanf()函数时, 不需要在它们前面加上"&"操作符。

例3mian(){char *p, str[20];scanf("%s", p); /*从健盘输入字符串*/scanf("%s", str);printf("%s\n", p); /*向屏幕输出字符串*/printf("%s\n", str);}(2). 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数, 表示任何读操作中的最大位数。

如例3中若规定只能输入10字符给字符串指针p, 则第一条scanf() 函数语句变为scanf("%10s", p);程序运行时一旦输入字符个数大于10, p就不再继续读入, 而后面的一个读入函数即scanf("%s", str)就会从第11个字符开始读入。

实际使用scanf()函数时存在一个问题, 下面举例进行说明:当使用多个scanf()函数连续给多个字符变量输入时, 例如:main(){char c1, c2;scanf("%c", &c1);scanf("%c", &c2);printf("c1 is %c, c2 is %c", c2\1, c2);}运行该程序, 输入一个字符A后回车(要完成输入必须回车), 在执行scanf ("%c", &c1)时, 给变量c1赋值"A", 但回车符仍然留在缓冲区内, 执行输入语句scanf("%c", &c2)时, 变量c2输出的是一空行, 如果输入AB后回车, 那么输出结果为: c1 is A, c2 is B。

要解决以上问题, 可以在输入函数前加入清除函数fflush()( 这个函数的使用方法将在本节最后讲述)。

修改以上程序变成:#include<stdio.h>main(){char c1, c2;scanf("%c", &c1);fflush(stdin);scanf("%c", &c2);printf("c1 is %c, c2 is %c", c1, c2);}1.1.2 非格式化输入输出函数非格式化输入输出函数可以由上面讲述的标准格式化输入输出函数代替, 但这些函数编译后代码少, 相对占用内存也小, 从而提高了速度, 同时使用也比较方便。

下面分别进行介绍。

相关文档
最新文档