C语言学习笔记之(格式化输入输出)
一、常见的格式字符
| 格式字符 | 功能说明 |
|---|---|
| %d | 以十进制形式输出带符号整数(正数不输出符号) |
| %o | 以八进制形式输出无符号整数(不输出前缀0) |
| %x,%X | 以十六进制形式输出无符号整数(不输出前缀0x)。x表示以小写字母输出十六进制数的a~f,X表示以大写字母输出十六进制数的A~F |
| %u | 以十进制形式输出无符号整数 |
| %f | 以小数形式输出单、双精度实数,隐含输出6位小数 |
| %e,%E | 以指数形式输出单、双精度实数。用e时,指数以“e”表示(如2.3e+003),用E时指数以“E”表示(如2.3E+003) |
| %g,%G | 以%f或%e中较短的输出宽度输出单、双精度实数,不输出无意义的0。用G时,若以指数形式输出,指数用大写表示 |
| %c | 输出单个字符 |
| %s | 输出字符串 |
二、使用printf输出不同格式
#include <stdio.h>
int main()
{
int a=15; /*定义整型变量a并赋值*/
float b=12.3456; /*定义单精度型变量b并赋值*/
double c=12345678.1234567; /*定义双精度型变量c并赋值*/
char d='p'; /*定义字符型变量d并赋值*/
printf("十进制a=%d,八进制a=%o,十六进制a=%x\n",a,a,a);/*输出变量a的十进制、八进制和十六进制形式*/
printf("b=%f\n",b); /*输出变量b*/
printf("c=%f,c=%e\n",c,c); /*输出变量c的小数形式和指数形式*/
printf("d=%c\n",d); /*输出字符变量d*/
printf("%s\n","I love C"); /*输出字符串*/
return 0; /*函数返回值0*/
}
//输出结果如下
十进制a=15,八进制a=17,十六进制a=f
b=12.345600
c=12345678.1234567,c=1.234568e+007
d=p
I love C
程序中定义的整型变量a,输出时可以用不同的格式字符输出a的十进制数(%d)、八进制数(%o)和十六进制数(%x)。输出单精度和双精度小数时都可以用“%f”,若想以指数形式输出单精度型和双精度型数,可以用“%e”。此外,可以用“%c”输出单个字符,用“%s”输出字符串。需要注意的是,输出字符串时,字符串需要用双撇号括起来。
1.再printf函数中使用附加符号
#include <stdio.h>
int main()
{
int a=15; /*定义整型变量a并赋值*/
double b=12345678.1234567; /*定义双精度型变量b并赋值*/
printf("a=%5d,a=%-5d,a=%05d\n",a,a,a); /*使用m控制输出位数,用-左对齐,
空位补0*/
printf("b=%f,b=%lf,b=%8.3f\n",b,b,b); /*输出b,用m.n控制输出的长度和
小数点位数*/
printf("%15s\n","I love C"); /*使用m控制输出字符串长度*/
printf("%-15.5s\n","I love C"); /*使用-m.n进行左对齐、限制字符串
长度和字符位数*/
return 0; /*函数返回值0*/
}
//输出结果如下
a= 15,a=15 ,a=00015
b=12345678.123457,b=12345678.123457,b=12345678.123
I love C
I lov
输出变量a时,“%5d”表示输出宽度为5,而a值为15,只有两位,故补三个空格;“%-5d”表示输出宽度为5并且左对齐,因此后补三个空格;“%05d”表示输出宽度为5并用“0”来补空位。输出变量b时,“%f”和“%lf”格式的输出相同,说明符号“l”对“f”类型无影响。“%8.3f”表示输出宽度为8,精度为3,由于实际长度超过8位,故应按实际位数输出,小数位数超过3位部分被截去。输出字符串时,“%15s”表示输出字符串宽度为15,如果字符串本身长度不足15,则用空格左补齐,可以看到“I love C”前存在7个空格。“%-15.5s”表示输出宽度虽为15,但这里指定了精度“.5”,也就是说指定了输出字符的个数为5,并且用“-”指定了左对齐,所以输出5个字符“I lov”,后面还有10个空格。
三、scanf格式输入
格式输入函数scanf的一般格式为:
scanf("格式控制",输入项地址列表);
例如:
scanf("a=%d,b=%f",&a,&b);
1.使用scanf应该注意输入格式与代码保持一致
利用scanf函数从键盘读入数据时,需注意:
(1)多个数据间可用空格键、回车键或【Tab】键进行分隔,最后以回车键结束输入。例如:
scanf("%d%d",&a,&b);
如想令a为12,b为34,正确的输入方式为:
12 34↙
或:
12↙
34↙
或:
12<TAB>
34↙
以上三种方式皆可。
scanf("a=%d,b=%f",&a,&b);
如想令a为3,b为4,则必须完整输入:
a=3,b=4↙
其中的“a=”、“b=”及逗号都必须原样输入,否则会出错。
四、字符输入输出
1.字符输出putchar
字符输出函数putchar的功能是向输出设备输出一个字符,其一般格式为:
putchar(c);
c为欲输出的字符常量或变量,亦可为整型常量或变量(ASCII码)。
参考代码
#include<stdio.h>
int main()
{
char a='A'; /*定义字符型变量a并赋初值'A'*/
int b=66; /*定义整型变量b并赋初值66*/
putchar(a); /*输出变量a的值*/
putchar(b); /*输出变量b的值*/
putchar('C'); /*输出字符'C'*/
putchar('\n'); /*输出换行符*/
return 0; /*函数返回值0*/
}
//输出结果为
ABC
2.字符输入getchar
字符输入函数getchar的功能是从输入设备上读入一个字符,其一般格式为:
getchar();
该函数的返回值为所读入的字符,所以一般与赋值语句联合使用,将读取的字符赋给变量,例如:
char c; /*定义字符变量c*/
c=getchar(); /*从键盘读入一个字符并赋值给变量c*/
参考代码
#include<stdio.h>
int main()
{
char a,b,c; /*定义字符型变量a,b,c*/
a=getchar(); /*输入一个字符给变量a*/
b=getchar(); /*输入一个字符给变量b*/
c=getchar(); /*输入一个字符给变量c*/
putchar(a); /*输出变量a的值*/
putchar(b); /*输出变量b的值*/
putchar(c); /*输出变量c的值*/
putchar('\n'); /*输出换行符*/
return 0; /*函数返回值0*/
}
//输出结果为
输入A
B
C
输出ABC
C语言学习笔记之(格式化输入输出)
https://www.wsjj.top/archives/c4
评论