第2章 C语言基础知识

1.printf()函数

在控制台输出数据,需要使用输出函数,C语言常用的输出函数为printf()。
printf()函数为格式化输出函数,其功能是按照用户指定的格式将数据输出到屏幕上。

printf(“格式控制字符串”,[输出列表]);

格式控制字符串:指定输出格式,以%开头,%符号后面跟各种格式控制字符;格式控制字符串的具体形式: “%标志][宽度][.精度][长度]类型”,例如: %c、%d、%3d、%.6f ┄

(1)类型

printf()函数可以输出任意类型的数据,如整型、字符型、浮点型数据等。

格式控制字符含义
s字符串
c单个字符
d有符号十进制整型
u无符号十进制整型
o无符号八进制整型
x无符号十六进制整型小写
X无符号十六进制整型大写
f单精度/双精度浮点型(默认打印6位小数)
e科学记数e
E科学记数E
p变量地址

类型应用示例一:

printf("%c", 'H');		//以%c格式输出字符'H'
printf("%s", "Hello, world!\n");	//以%s格式输出字符串"Hello, world!"
printf("%d", 100);		//以%d格式输出整数100

类型应用示例二:

printf("%d%d%d\n",1,2,3);	//使用3个%d输出三个整数1、2、3
printf("%f\n%c\n",2.1,'a');	//使用%f与%c输出2.1与字符'a'

(2)标志

printf()函数中的标志字符用于规范数据的输出格式,如左对齐、右对齐、空缺填补等,标志符有“-”“+”“0”“空格”“#”五种。

标志符含义
-左对齐;printf()函数输出数据默认为右对齐
+当一个数为正数时,前面加上一个+符号。默认正数不显示+符号
0右对齐时,用0填充左边空缺。默认使用空格填充
空格输出正数时,前面为空格;输出负数时,前面带-符号
#对%c、%s、%d、%u等无影响;对%o格式,输出时加上八进制前缀0;对%x(%X)格式,输出时加上十六进制前缀0x

(3)宽度

宽度是用十进制表示的输出数据的位数,若实际位数多于定义的宽度,则按实际位数输出;若实际位数少于定义的宽度则补以空格或0。
宽度应用示例一:

printf("%d\n", 123);	   //按实际位数3输出
printf("%5d\n", 123);	   //设置宽度为5
printf("%10d\n", 123);	   //设置宽度为10

在这里插入图片描述
宽度应用示例二:

printf("%d\n", 123);
printf("%-5d\n", 123);		//添加-符号,左对齐输出
printf("%010d\n", 123);		//添加0,左边以0填充

在这里插入图片描述

(4)精度

精度格式以字符“.”开头,后面跟十进制整数,精度主要作用于浮点型数据,表示输出小数点后面的位数。

  • 如果不设置精度,默认输出小数点后6位。
  • 如果作用于整型数据,则表示按照一定宽度输出数据,左侧空缺填充0。
  • 在使用精度时,如果实际位数大于所定义的精度数,则截去超出的部分。

精度应用示例:

printf("%f\n", 1.234567);		//默认输出小数点后6位
printf("%.8f\n", 1.234567);	//输出小数点后8位,后面填充0
printf("%.3f\n", 1.234567);	//输出小数点后3位,截断超出的部分
printf("%.6d\n", 123);		//输出123的宽度为6,左侧填充0

在这里插入图片描述

(5)长度

长度格式符包括h、l两种,h是short的简写,表示按短数据类型量输出;l是long的简写,表示按长数据类型输出。

长度应用示例:

printf("%d\n", 123);		//正常输出
printf("%hd\n", 123);		//按短数据类型输出
printf("%lf\n", 1.23);		//按长数据类型输出

2.scanf()函数

scanf()函数用于读取用户从键盘输入的数据,用法与printf()函数类似,但不同的是,scanf()函数只能使用类型(%d、%c、%f等)格式控制,并不使用宽度、精度、标志等格式控制。

scanf()函数应用示例:

int a;
char c;
float f;
scanf("%d", &a);	//接受一个从键盘输入的整型数据
scanf("%c", &c);	//接受一个从键盘输入的字符类型数据
scanf("%f", &f);	//接受一个从键盘输入的float类型数据

注意:
scanf()函数在读取输入的数据时,遇到终止符会停止输入。
scanf()函数的终止符有多个。

字符含义
0x20空格
\t水平制表符(tab键)
\n换行
\v垂直制表符
\f换页
\r回车

scanf()函数不安全,经常导致程序编译不通过。
在这里插入图片描述
解决办法
1.#define _CRT_SECURE_NO_WARNINGS
2.C11标准中的scanf_s()函数代替scanf()函数

案例

#include <stdio.h>
#include <stdlib.h>
int main()
{
	printf("我爱C语言");
	return 0;
}

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部