你真的学会了printf和scanf函数吗?

简介: 你真的学会了printf和scanf函数吗?

1.printf函数的介绍


  1. printf()是标准库的头文件stdio.h定义的。使用这个函数之前,必须在源码文件头部引入这个头文件。
  2. 占位符 printf()可以在输出文本中指定占位符,所谓占位符就是这个位置可以用其他值带入。例如下列的%d就是一个占位符,被数值18带入。
int main()
{
  printf("You are a %d boy!", 18);
  return 0;
}
  1. *一个printf()中可以包含多个占位符 例如:
#include<stdio.h>

int main()
{
  printf("%s are a %d boy!", "Wang Laowu", 18);
  return 0;
}


printf()参数与占位符是一一对应关系,如果有n个占位符,printf()的参数就应该有n+1个,如果参数个数少于对应的占位符,printf()可能会输出内存中的任意值。


  1. 这里是printf()函数中的各种占位符解释和用法

点此进入网站C++reference,这里可以查找一切关于C语言的知识。不过这是一个英文网站,要有一定的英语基础阅读起来更加方便。话说回来,我们还是要多阅读此类英文网站,好处当然是不言而喻的。(当然,如果阅读英文网站实在吃力的话,也可以直接搜索printf,也是有很多的中文网站可以阅读的)

https://legacy.cplusplus.com/reference/cstdio/printf/?kw=printf


5.输出格式:printf()可以定制占位符的输出格式

1.限定宽度:printf()允许限定占位符的最小宽度

——%5d表示这个占位符的宽度至少为5为,如果不满5为,对应的值前面会添加空格。
——输出的值默认是右对齐,即输出的内容前面会有空格,想要左对齐的话,在5前面加负号就行了
——对于打印小数来说也是同理

——这里对于float类型的变量默认小数点后面跟着6为小数,如果我们想要控制小数点后面的位数可以如下这样操作,但是我们要注意当小数点后面的位数大于我们限制的位数是,它是会四舍五入的。

——如果我们想要在数字前面显示正负号,可以如下这样操作。

——当然我们还有更为灵活的方式控制限定的数值:用*代替数值通过后面参数的输入来控制限制的数值,例如:

——当我们想要控制输出字符串的长度是可以采用%.[m]s的这种格式([m]前面的.不要漏了哟~);例如:


2.scanf函数的介绍


  1. scanf()函数的语法形式与printf基本相同,不过在输入参数时要在参数前面加入一个取地址符号&(printf读取的是数值,而scanf读取的是地址)。
  2. 当scanf处理数值占位符时,会自动过滤掉空白字符(包括空格,制表符,换行等),另外,用户使用回车键将数值分成几行也不影响解读。举个栗子


然而,占位符%c却不会过滤掉起首的空白字符~

可以看到a并没有打印出来,因为空格也是字符,%C将空格读取后就停止读取了(那么我们要怎么解决这个问题呢,其实很简单,只要在%C前面加一个空格就行了,这里就不演示了)


特别的

占位符%S会过滤掉前面的起首空白字符,而当再次遇到空白字符是其将停止读取。举个栗子啦~

可以看到我们只打印了字符串Zhangsan。那我们想要把他们都打印出来,有没有办法呢?其实是有办法的,我们只要输入多个%S就行啦~(爱学习的你们要学会自己去演示哦)


  1. scanf的返回值:scanf的返回值是scanf成功读取的变量个数,如果没有读取到任何项或匹配失败,则返回0。如果在成功读取到任何数据之前发生了读取错误或遇到读取到文件末尾,则返回常量EOF(-1)。举个栗子~


那了解scanf的返回值有什么用呢~

当我们要测试多组数据的输入时我们就可以用到~


  1. 最后,介绍一下赋值忽略符:当我们输入时想要丢弃一些不要的字符我们可以用如下格式%*C(即赋值忽略符,类似的%*d,%*f等等)举个栗子~

这里我们可以看到字符‘/’被忽略掉了


3.总结


这次的编程知识分享就接近尾声了,不过,我还有几句话想和与我同样刚开始学习编程的你们分享:编程之路,道阻且长,行则至。无论是学习还是生活,本是沉闷,但奔跑起来便有风。

相关文章
|
10月前
|
SQL 前端开发 数据处理
Python 项目实战入门:从 0 到 1 搭建简易学生信息管理系统
本文以简易学生信息管理系统为例,详解Python Web项目从需求分析、技术选型到编码部署的完整流程。采用Flask+SQLite+Bootstrap轻量栈,实现增删改查与Excel导出,助初学者快速掌握开发逻辑与实战技能。
|
8月前
|
人工智能 自然语言处理 安全
云上部署OpenClaw(Clawdbot)多少钱?2026年阿里云部署OpenClaw新手教程及收费标准参考
OpenClaw(前身为Clawdbot、Moltbot)作为一款开源AI代理与自动化平台,凭借自然语言控制、多工具集成、跨场景任务执行等核心优势,成为个人办公效率提升与轻量团队协作优化的重要工具。其不仅能实现文件处理、邮件管理、代码生成等基础操作,还可通过对接主流大语言模型构建个性化工作流,适配从个人日常办公到团队协同的多元需求。2026年阿里云推出的一键部署方案,通过预置专属镜像简化了环境配置流程,同时提供清晰透明的计费模式,让不同需求的用户都能精准规划成本并快速落地使用。本文将详细拆解阿里云部署OpenClaw的完整流程,结合官方计费标准梳理费用构成与成本控制方案,为用户提供从部署到运维
6697 4
|
传感器 人工智能 机器人
具身智能9大开源工具全景解析:人形机器人开发必备指南
本文旨在对具身智能、人形机器人、协作机器人、AI机器人、端到端AI系统、AI Agent、AI Agentic、空间智能或世界模型等前沿领域中具有重要影响力的开源软件产品或工具进行深入分析,重点聚焦于支持这些先进AI能力实现的工具、平台和框架。
4131 8
|
数据采集 搜索推荐 API
小红书笔记详情 API 接口的开发、应用与收益
小红书(RED)作为国内领先的生活方式分享平台,汇聚了大量用户生成内容(UGC),尤其是“种草”笔记。小红书笔记详情API接口为开发者提供了获取笔记详细信息的强大工具,包括标题、内容、图片、点赞数等。通过注册开放平台账号、申请API权限并调用接口,开发者可以构建内容分析工具、笔记推荐系统、数据爬虫等应用,提升用户体验和运营效率,创造新的商业模式。本文详细介绍API的开发流程、应用场景及潜在收益,并附上Python代码示例。
1314 62
|
SQL 数据库 Docker
【赵渝强老师】在Docker中运行达梦数据库
本文介绍了在Docker容器中部署达梦数据库(DM 8)的具体步骤,包括创建文件夹、下载安装包、导入镜像、启动容器、登录数据库及查看状态等操作。同时,通过视频讲解辅助理解。文中还分析了将数据库服务容器化的潜在问题,如数据安全性、硬件资源争用、网络带宽占用和额外隔离带来的挑战,指出数据库服务在生产环境中可能不适合容器化的原因。
2345 4
【赵渝强老师】在Docker中运行达梦数据库
|
分布式计算 资源调度 安全
hadoop安装教程(一次填完所有的坑)
hadoop安装教程(一次填完所有的坑)
3377 1
|
人工智能 算法 大数据
【天池大赛】历届比赛资料
【天池大赛】历届比赛资料
|
机器学习/深度学习 人工智能 安全
AI与旅游业:旅行规划的智能助手
在数字化浪潮中,人工智能(AI)正重塑旅游业。本文探讨了AI如何通过个性化推荐、智能预测与预警、语音交互与虚拟助手、增强现实体验及可持续发展,提升旅行规划的效率、安全性和趣味性,推动旅游业创新与变革。
1229 1
|
安全
C 空指针的使用注意点
在 C 语言中,空指针(NULL pointer)是指不指向任何有效地址的指针。使用时需注意以下几点:1. 初始化指针,如 `int *ptr = NULL;` 2. 解引用前检查有效性,如 `if (ptr != NULL)` 3. 函数参数中处理空指针 4. 用作标识值 5. 检查动态内存分配结果 6. 释放内存后设为 `NULL` 7. 多级指针需逐层检查 8. 谨慎赋值空指针。空指针是强大的工具,但需谨慎使用以确保程序安全稳定。
724 12

热门文章

最新文章