Chinaunix首页 | 论坛 | 博客
  • 博客访问: 124423
  • 博文数量: 23
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 329
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-04 13:23
个人简介

开心过好每天!

文章分类

全部博文(23)

文章存档

2013年(23)

分类: LINUX

2013-08-05 19:01:36

printf=print + format

int printf(const char *format,......);

int fprintf(FILE *stream,const char *format,......);

int sprintf(char *str,const char *format,......);

%【标志】【输出最小宽度】【.精度】【长度】类型

类型:

%d:以十进制输出带符号整数(正数不输出符号)

%u:以十进制形式输出无符号整数

%f:以小数形式输出单、双精度实数

%e(E):以指数形式输出单、双精度实数

%c:输出单个字符

%s:输出字符串

%p:输出一个地址

标志:

-:结果左对齐,右边填空格

+:输出符号(正好或负号)

空格:输出值为正时冠以空格,为负时冠以负号

#:对0类---在输出时加前缀0;对x类---在输出时加前缀0x;对f,e类---当结果中有小数时才给出小数点

输出最小宽度:

用十进制整数来标识输出结果的宽度。若实际位数宽度多余定义的宽度,则按实际宽度输出,若实际位数宽度小于定义的宽度则补空格(默认补在左边)。

精度:

精度格式符以“.”开头,后跟十进制整数。他表示:如果输出数字,则表示输出小数位的宽度(如果指定宽度大于实际小数位宽度,则在右边补随机数字);如果输出字符,则表示输出字符的个数(如果指定宽度大于实际字符宽度,则只输出实际字符)

长度:

长度格式符有h,l两种,h表示按短整型输出,l标识按长整型输出。

scanf=scan + format

int scanf(const char *format,......);

int fscanf(FILE *stream,const char *format,......);

sscanf(const char *str,const char *format,......);

%【*】【输入数据宽度】【长度】类型

*:用以表示该输入项,读入后步赋予相应的变量,即跳过该输入值

eg:scanf("%d,%*d,%d",&a,&b);

输入:1,2,3

a = 1,b = 3

宽度:

指定输入值的宽度

eg1:scanf("%5d",&a);

输入:123456

a = 12345

eg2:scanf("%4d%4d",&a,&b);

输入:123456789

a = 1234,b = 5678

注意:

1、在输入多个数值数据时,若格式控制串中没有非格式字符作为输入数据之间的间隔,则可用:空格、TAB、回车来结束一个数据的输入

2、当只需要输入一个数据时,非法数据也可以结束数据的输入

eg:scanf("%d",&a);

输入:12A123

由于A为非法数据,所以输入结束,a = 12

3、如果scanf中有非格式字符串,则在输入的时候也要输入相同的非格式字符串

eg:scanf("a=%d,b=%d",&a,&b);

正确的输入方式:a=234,b=33

阅读(1538) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~