当前位置: 首页 > news >正文

第2章 C语言基础知识

第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;
}
http://www.lryc.cn/news/429358.html

相关文章:

  • 鹭鹰优化算法SBOA优化RBF神经网络的扩散速度实现多数入多输出数据预测,可以更改数据集(MATLAB代码)
  • MySQL基础练习题48-连续出现的数字
  • webrtc学习笔记2
  • Simple RPC - 06 从零开始设计一个服务端(上)_注册中心的实现
  • 【深度学习】基于Transformers的大模型推理框架
  • 电脑监控怎样看回放视频?一键解锁电脑监控回放,守护安全不留死角!高效员工电脑监控,回放视频随时查!
  • 【一起学Rust | 框架篇 | Tauri2.0框架】tauri中rust和前端的相互调用(rust调用前端)
  • deque容器
  • Redis远程字典服务器(9)—— 类型补充
  • VMware虚拟机nat无法联通主机
  • 「字符串」详解AC自动机并实现对应的功能 / 手撕数据结构(C++)
  • freecad遭遇网络不同无法安装插件Addon Manager: Unexpected 0 response from server
  • Ruby模板引擎:构建动态视图的艺术
  • HarmonyOS NEXT星河版零基础入门(3)
  • 第二十讲 python中的异常结构-try except-else-finally
  • springer 投稿系统中返修注意点
  • CSS:display和visiblity
  • 43.x86游戏实战-XXX寻找吸怪坐标
  • Redis地理位置相关应用
  • 优化WAN流量:如何通过调整系统设置降低企业网络成本
  • Java-HttpHeaders请求头或响应头
  • Elasticsearch高阶查询
  • 【流媒体】RTMPDump—RTMP_Connect函数(握手、网络连接)
  • 通过https方式访问内网IP
  • flutter 键盘弹出 都会重新Build
  • RedisDistributedLock 分布式锁
  • Java之包装类
  • Linux - 权限
  • 免费图形化nginx管理工具nginxWebUI
  • 编程上的挫折不可怕,可怕的是你畏惧了