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

【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(六)

 


 🔥个人主页:艾莉丝努力练剑

❄专栏传送门:《C语言》、《数据结构与算法》、C语言刷题12天IO强训、LeetCode代码强化刷题

🍉学习方向:C/C++方向

⭐️人生格言:为天地立心,为生民立命,为往圣继绝学,为万世开太平


 


前言: 我们在学习过程中会碰到很多很多问题,本系列文章不会博主不会额外再创建一个新的专栏来收录,因为这一系列文章创作的初心主要是针对回顾知识点(遵循遗忘曲线并且根据自身的实际情况可以做出一些计划,回顾知识点很重要)、缓解学习过程中的可能出现的焦虑等等。主包就不另外开一个专栏了,uu们可以把本系列的文章作为【C语言】专栏的后日谈来看。

主包学习能力比较一般,学起语言、算法无论是花费的时间精力还是取得的成效和大佬们完全无法比。主包起步也比较晚,主包正儿八经开始学C++是从今年的4月24号开始的,主包学习能力真的很一般,C语言这个基础也不扎实,看主包文章的诸位一定是比主包要强的,但主包学习过程中碰到的麻烦、思考、和做的知识点回顾对大家还是有用的。


目录

正文

三、知识点回顾

(九)占位符

1、scanf和printf

2、占位符

 3、总结

(1)常见的输出占位符

(2)输入占位符

(3)占位符的修饰符

(4)注意

4、回顾

结尾


正文

三、知识点回顾

(九)占位符

1、scanf和printf

scanf 和 printf ——>表示可以定制输出文本的格式。

这个“f” 是format,格式化的意思。

我们这里也是举个例子:

printf("Hello\n");
printf("World\n");
printf("Hello\nWorld\n");

我们来看一看getchar和putchar——

getchar();
//光标的闪烁
// //读取一个字符
// //输入一个字符,输出
//getchar只针对字符,只能读字符
//putchar只能输出字符
getchar//读取
putchar//输出
#include<stdio.h>int main()
{int ch = getchar();printf("%c\n", ch);putchar(ch);//把ch打印在屏幕上return 0;
}

 //占位符的第一个字符一律为百分号%
%s

int main()
{printf("zhansan says it is 10 o'clock\n");printf("%s says it is %d o'clock\n", "zhangsan", 10);return 0;
}

注意: 

键盘敲的任何字都会被当成字符,如2会被当成字符2。

2、占位符

%i ≈ %d 整数

下面是博主在单目操作符++、--的前置后置知识点总结,printf函数的一些知识点一文中对占位符的列举,大家可以再回顾一遍,加粗的字重点关注一下——

%a :十六进制浮点数,字母输出为小写。

%A :十六进制浮点数,字母输出为大写。

%c :字符。// char

%d :十进制整数。// int

%e :使用科学计数法的浮点数,指数部分的 e 为小写。

%E :使用科学计数法的浮点数,指数部分的 E 为大写。

%i :整数,基本等同于%d 。

%f :小数(包含 float 类型、double 类型)。//float——%f,double——%lf

%g :6个有效数字的浮点数。整数部分一旦超过6位,就会自动转为科学计数法,指数部分的e为小写。
%G :等同于%g ,唯一的区别是指数部分的E为大写。

%hd :十进制 short int 类型。

%ho :八进制 short int 类型。

%hx :十六进制 short int 类型。

%hu :unsigned short int 类型。

%ld :十进制 long int 类型。

%lo :八进制 long int 类型。

%lx :十六进制 long int 类型。

%lu :unsigned long int 类型。

%lld :十进制 long long int 类型。

%llo :八进制 long long int 类型。

%llx :十六进制 long long int 类型。

%llu :unsigned long long int 类型。

%Le :科学计数法表示的 long double 类型浮点数。

%Lf :long double 类型浮点数。

%n :已输出的字符串数量。该占位符本身不输出,只将值存储在指定变量之中。

%o :八进制整数。

%p :指针(用来打印地址)。

%s :字符串。

%u :无符号整数(unsigned int)。

%x :十六进制整数。

%zd : size_t 类型。

%% :输出一个百分号。//不是转义

%zu:sizeof、strlen。

注意:

有符号整数——%d打印,

无符号整数——%u打印,

不要交错,要匹配。

 3、总结

在C语言中,占位符主要用在 printf 和 scanf 等函数中,用于格式化输入输出。每个占位符都对应一种数据类型,并控制如何将变量转换为字符串进行显示或读取。

(1)常见的输出占位符

以下是一些常用的输出占位符及其用途:

  • %d%i:用于输出十进制整数。

  • %u:用于输出无符号整数。

  • %f:用于输出浮点数,默认情况下会显示小数点后六位2

  • %c:用于输出单个字符。

  • %s:用于输出字符串。

  • %p:用于输出指针地址,通常以十六进制形式表示。

  • %n:用于记录已输出的字符数量,并将其存储到对应的整型变量中。

  • %o:用于输出八进制整数。

  • %x%X:用于输出十六进制整数,前者使用小写字母,后者使用大写字母。

  • %e%E:用于输出科学计数法表示的浮点数,分别使用小写 e 和大写 E 表示指数部分。

  • %g%G:根据数值大小自动选择 %f%e / %E 格式进行输出。

  • %l:用于表示长整型(如 %ld)或双精度浮点数(如 %lf)。

  • %L:用于表示长双精度浮点数(如 %Lf)。

  • %%:用于输出一个百分号本身。

例如,下面是一个简单的程序展示如何使用这些占位符:

#include <stdio.h>int main() 
{int a = 66;float f = 2.4;char c_data = '*';printf("变量a=%d\n", a); // 输出十进制整数printf("十六进制变量a=%x\n", a); // 输出十六进制整数printf("有一个小数点的数据=%.2f\n", f); // 控制小数点后两位printf("输出一个字符=%c\n", c_data); // 输出字符return 0;
}
(2)输入占位符

在 scanf 函数中,占位符用于从标准输入中读取特定类型的值。常见的输入占位符包括:

  • %d:读入十进制整数。

  • %i:读入十进制、八进制或十六进制整数。

  • %u:读入无符号十进制整数。

  • %f%F%e%E%g%G:用于输入实数,可以是小数形式或指数形式。

  • %c:读入一个字符。

  • %s:读入一个字符串,遇到空格、制表符或换行符时停止。

  • %p:读入一个指针。

  • %o:读入八进制整数。

  • %x%X:读入十六进制整数。

  • %[]:扫描字符集合,常用于指定允许输入的字符范围。

  • %%:读入一个百分号本身。

以下是一个使用 scanf 的示例:

#include <stdio.h>int main() 
{int num;float decimal;char ch;printf("请输入一个整数、一个小数和一个字符:");scanf("%d %f %c", &num, &decimal, &ch);printf("你输入的是:%d, %.2f, %c\n", num, decimal, ch);return 0;
}
(3)占位符的修饰符

还可以通过修饰符来进一步控制占位符的行为,例如:

(1)宽度指定:可以在占位符前加上数字,表示最小字段宽度。例如,%10d 表示至少占用10个字符宽度输出整数。

(2)精度指定:对于浮点数,可以通过 .n 指定小数点后的位数,如 %.2f 表示保留两位小数。

(3)左对齐:默认情况下,输出是右对齐的;如果希望左对齐,可以在宽度前面加 -,如 %-10s

(4)前缀修饰符:如 %ld 表示长整型,%lf 表示双精度浮点数等。

(4)注意

(1)使用占位符时,必须确保变量类型与占位符匹配,否则可能导致未定义行为;

(2)在 scanf 中,除了 %c 和 %[...]外,其他占位符会自动跳过前导空白字符;

(3)如果需要读取包含空格的字符串,应使用 fgets 而不是 scanf("%s",……)

4、回顾
printf("%10.2f\n", 123.4567);
printf("%*.*f\n", 10, 2, 123.4567);

像这两个代码其实是同理的,我们通过画图理解一下——

%10.2f 表示输出字符串中最小宽度为10,所以输出字符串头部有两个空格。 


结尾

下一篇文章的更新应该会隔蛮长一段时间,会回顾scanf、switch语句等知识点,敬请期待!

只要是主动学习,只要你有兴趣,只要你喜欢学,到处是时间。

往期回顾:

【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(五)

【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(四)

【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(三)

【计算机语言选择规划】全是干货!从难度、就业、岗位选择、薪酬待遇、未来发展等方面详解第一门主流语言学习的选择

【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(二)

【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(一)

http://www.dtcms.com/a/271843.html

相关文章:

  • 【博主亲测可用】PS2025最新版:Adobe Photoshop 2025 v26.8.1 激活版(附安装教程)
  • Apache Dubbo实战:JavaSDK使用
  • 前端面试十一之TS
  • 服务器重装后如何“复活”旧硬盘上的 Anaconda 环境?—— 一次完整的排错与恢复记录
  • 计算机学科专业基础综合(408)四门核心课程的知识点总结
  • 微信小程序101~110
  • 以太网基础⑤UDP 协议原理与 FPGA 实现
  • 2025年7月9日学习笔记——模式识别与机器学习——fisher线性回归、感知器、最小二乘法、最小误差判别算法、罗杰斯特回归算法——线性分类器
  • 【TCP/IP】1. 概述
  • AI赋能生活:深度解析与技术洞察
  • LiteHub之文件下载与视频播放
  • 微信小程序控制空调之EMQX服务器安装与配置
  • 重新配置电脑中的环境变量
  • SpringBoot ThreadLocal 全局动态变量设置
  • 机器学习11——支持向量机上
  • 初学者对编译和链接的学习笔记(含预编译详解)
  • 广告匹配策略的智能化之路:人工智能大模型的方法和步骤
  • 多模态大语言模型arxiv论文略读(156)
  • vivo Pulsar 万亿级消息处理实践(3)-KoP指标异常修复
  • 快速上手MongoDB与.NET/C#整合
  • 【AI大模型】LLM模型架构深度解析:BERT vs. GPT vs. T5
  • searxng 对接openweb-UI实现大模型通过国内搜索引擎在线搜索
  • 搜索引擎vs向量数据库:LangChain混合检索架构实战解析
  • 计算机视觉 之 数字图像处理基础
  • 基于 SpringBoot + Vue 的 IT 技术交流和分享平台的设计与实现
  • TCP-与-UDP-协议详解:原理、区别与应用场景全解析
  • 北斗舞动在线监测装置:电力安全的“智慧守护者”
  • SpringMVC @ExceptionHandler 典型用法
  • 了解去中心化金融在现代经济中的作用——安全交易新时代
  • 编写bat文件自动打开chrome浏览器,并通过selenium抓取浏览器操作chrome