C语言5 DAY

简单的格式输入与输出

用简单的printf函数输出数据

printf函数的一般格式

printf ("格式控制",输出表列) ;

⑴ 格式控制 ,用一对双引号括起来,包括两种信息: ① 格式说明 由“%”和特定字符组成,如:%d、%c、%f等,是格式说明符,用于说明输出项目所采用的格式; ② 普通字符 作为说明性的文字、符号等,照原样显示出来。 ⑵ 输出表列 中的各项目指出了所要输出的内容,可是常量、变量或表达式。

⑶ 例如: printf("a=%d b=%f\n",a,b) ;

基本的格式字符

%d 按十进制整型数据的实际长度输出。

%c 仅输出一个字符。

%s printf("%s\n", "CHINA");输出的结果是字符串 CHINA

%f 以小数形式输出一个实数(含单双精度数)。整数部分全部输出,并输出6位小数。

%e 或%E 以指数形式输出一个实数(含单双精度数)。小数点前仅1位非0数字,并输出6位小数。

用简单的scanf函数输入数据

scanf函数的一般格式

scanf(“格式控制”,地址表列);

  • 作用 将从键盘输入的值存入内存中所占的存储单元里。存储单元由地址标识。

  • 说明 “格式控制”的含义同printf函数,说明输入的数据应使用的格式。 “地址表列”是由若干个地址组成的,可以是变量的地址或字符串的首地址。&是取地址运算符,用于取出变量的地址。 与格式输出一样,在格式控制中,用于说明输入数据格式的格式说明符总是以%开头,后面紧跟的是具体的格式。

说明:

⑴ scanf函数中的“格式控制”后面应当是变量的地址,由取地址运算符和变量名共同组成,不能仅是变量名: scanf("%f%d", &a,&b);

⑵ 如果“格式控制”中除了格式说明以外还有其它字符,则在输入数据时必须在对应位置输入与之相同的字符: scanf("%d,%d", &a,&b); 从键盘输入时必须输逗号: 3,4

⑶ 用%c格式输入字符时,空格和转义字符都作为有效字符输入,应注意: scanf("%c%c%c", &a,&b,&c); 只有输入:xyz ↲ 才能使a得到x,b得到y,c得到z

⑷ 在输入数值型数据时,遇到空格、回车、Tab键或遇非法输入,则认为该数据结束: scanf("%d%c%f", &a,&b,&c); 若输入:1234a123o.26 输出:1234a123

⑸ 对于unsigned型变量所需的数据,可以用%u或%d格式输入。

较复杂的输入输出格式控制

按指定格式输出数据的宽度、小数位数、上下行数据按小数点对齐、用八进制、十六进制输出等。

输出数据格式控制

整型格式说明符

十进制

  • %d 或 %md 用于基本整型 int

  • %ld 或 %mld 用于长整型 long

  • %u 或 %mu 用于无符号基本整型 unsigned

  • %lu 或 %mlu 用于无符号长整型 unsigned long

八进制:

  • %o 或 %mo 用于基本整型 int

  • %lo 或 %mlo 用于长整型 long

十六进制:

  • %x 或 %mx 用于基本整型 int

  • %lx 或 %mlx 用于长整型 long

说明:

m表示输出的整型数据所占总宽度(即列数),其中:当实际数据的位数不到m位时,数据前面将用空格补满;若实际数据位数大于m,则以数据的实际位数为准进行输出。

一个int型整数也可以%u格式输出,反之一个unsigned型整数也可以%d、%o、%x格式输出。按相互赋值的规则处理。

字符格式说明符

字符char型:%mc 输出的字符占m列,如:printf(“%3c”,’a’);实际输出为:a

字符串:%ms 输出的字符串占m列。若串长>m,全部输出;若串长<m,左面补空格。 %-ms 输出的字符串长<m,右面补空格 %-m.ns 只取字符串前n个字符。若n<m,右面补空格;若n>m,m自动取n值。

  • 一个整数,只要其值在0~255范围内,也可义用“%c”格式使其按字符形式输出。

  • 在输出前,系统会自动将该整数作为ASCII码转换成相应的字符;反之,一个字符也可以输出成一个整数。

实型格式说明符
  • 十进制数形式:%m.nf 或 %-m.nf

  • 指数形式:%m.ne 或 %-m.ne

  • %g或%G形式:根据数值的大小,自动选%f 或 %e中宽度较短的一种格式,不输出无意义的0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值