C语言从入门到精通之【printf和scanf函数】

news2024/11/26 3:34:36

printf()是输出函数,scanf()是输入函数,但是它们的工作原理几乎相同。两个函数都使用格式字符串和参数列表。

printf()函数的格式

printf( 格式字符串, 待打印项1, 待打印项2,…);待打印项1、待打印项2等都是要打印的项。它们可以是变量、常量,甚至是在打印之前先要计算的表达式。格式字符串是双引号括起来的内容

例如:printf(“The %d contestants ate %f berry pies.\n”, number, pies);

注意:格式字符串中的转换说明一定要与后面的每个项相匹配,若忘记这个基本要求会导致严重的后果。

printf()的转换说明修饰符

sizeof运算符以字节为单位返回类型或值的大小。这个大小应该是某种形式的整数,但标准只规定该值是无符号整数。在不同的实现中,它可以是unsigned intunsigned long甚至是unsigned long long。因此,如果要使用printf()函数显示sizeof表达式,根据不同系统可能需要使用%u%lu%llu。这就意味着要查找当前系统的用法,如果将程序移植到不同的系统,可能需要进行修改。

鉴于此,C提供了更好可移植性的类型。首先,stddef.h头文件(在包含stdio.h头文件时已包含其中)将size_t定义为系统使用sizeof返回的类型,这被称为底层类型(underlying type)。其次,printf()使用z修饰符表示打印相应的类型。同样,C还定义了ptrdiff_t类型和t修饰符,用来表示系统使用的两个地址差值的底层有符号整数类型。

float类型

对于浮点类型,有用于double和long double类型的转换说明,却没有float类型的。这是因为在K&R C中,表达式或参数中的float类型值会被自动转换成double类型。printf()函数中所有float类型的参数(对未使用显式原型的所有C函数都有效)仍自动转换成double类型。因此,无论是K&R C还是ANSI C,都没有显示float类型值专用的转换说明。

printf()的返回值

大部分C函数都有一个返回值,这是函数计算并返回给主调程序(calling program)的值,printf()函数也有一个返回值,它返回打印字符的个数。如果有输出错误,printf()则返回一个负值(printf()的旧版本会返回不同的值)。不过该函数的返回值基本不会用到

看这个例子,打印“hello world”返回12(结束符和空格各占1个字节)。

打印长字符串

在一些大公司里,为了方便阅读,代码规范对每一行代码的长度有要求,例如linux内核规定一行不超过80字符,那我们就要换行了。

如下图,如果是逗号后面换行无所谓,如果是双引号内直接换行就会报错

一种方法是**加反斜杠 **,但是这种方法需要顶格,不然会有多余空白。

还有一种方法是拆成多个双引号括起来的字符串。

scanf函数

scanf()中的格式字符串表明字符输入流的目标数据类型

例如:scanf(“%s”, pet);

就是将键盘输入的字符串保存到pet这个变量里,pet是个char类型的数组,字符串格式用%s。

简单记住两条规则:

用scanf()读取基本变量类型的值,在变量名前加上一个&;

用scanf()把字符串读入字符数组中,不要使用&。

&是取址符。

C99标准中常用的转换说明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1208286.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

凸包的学习之路

学习视频选择的是:清华大学邓俊辉教授的《计算几何》课程 关于我为什么学习 凸包(Convex Hull)? ——在学习过程中遇到了凸包问题,凸包在CV领域的基础性,使我觉得深入了解凸包是必要的。此外,…

CVE-2023-2766:泛微E-Office信息泄露漏洞复现 [附POC]

文章目录 泛微E-Office信息泄露漏洞(CVE-2023-2766)复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 泛微E-Office信息泄露漏洞(CVE-2023-2766)复现 [附POC] 0x01 前言 免责声明:请勿利用…

成绩发布快捷方式

当一名老师,每到学期中期末,是不是觉得成绩发布就像个老大难?学生急着要知道自己的成绩,家长也频繁私信询问成绩,而传统的成绩发布方式却往往效率低下,费时费力。今天就来聊聊如何通过查询系统、各类代码、…

算法笔记-第九章-二叉树的遍历(待整理)

算法笔记-第九章-二叉树的遍历 二叉树的先序遍历二叉树的中序遍历二叉树的先序遍历 //二叉树的先序遍历 #include <cstdio> #include <vector> using namespace std;const int MAXN = 50;struct Node //用结构体表示左子树和右子树的数据 {int l, r; } nodes[MAXN]…

海康G5系列(armv7l) heop模式下交叉编译Qt qmqtt demo,出现moc缺少高版本GLibc问题之解决

1.编辑源 sudo vi /etc/apt/sources.list 2.添加高版本的源 deb http://th.archive.ubuntu.com/ubuntu jammy main #添加该行到文件 3.运行升级 sudo apt update sudo apt install libc6 4.strings /**/libc.so.6 |grep GLIBC_ 参考链接&#xff1a;version GLIBC_2.3…

【java学习—十四】反射获取一个类的父类、接口、构造方法(3)

文章目录 1. 通过反射获取一个类的父类和接口2. 反射获取一个类的构造方法2.1. 获取全部构造器 1. 通过反射获取一个类的父类和接口 使用反射可以取得&#xff1a; 实现的全部接口 public Class<?>[] getInterfaces()&#xff1a;确定此对象所表示的类或接口实现的接口…

【论文阅读】(GAN)Generative Adversarial Nets

论文地址&#xff1a;[1406.2661] Generative Adversarial Networks (arxiv.org) “GAN之父” Ian Goodfellow 发表的第一篇提出 GAN 的论文&#xff0c;这应该是任何开始研究学习 GAN 的都该阅读的一篇论文&#xff0c;它提出了 GAN 这个模型框架&#xff0c;讨论了非饱和的损…

算法——图——bsf 广度优先搜索算法 (Breadth First Search)

图遍历算法——bsf 广度优先搜索算法 &#xff08;Breadth First Search&#xff09; 算法 概述算法过程步骤一&#xff1a;初始化原点到队列步骤二&#xff1a;将队列的头顶点放入到已完成集合步骤三&#xff1a;将订单的关联顶点放入到队列中步骤四&#xff1a;将u顶点设置为…

【23真题】易,学硕爆冷,题目常规!

今天分享的是23年广州大学823的信号与系统试题及解析。广州大学23年学硕爆冷&#xff0c;一志愿全部录取&#xff0c;不知道24情况将如何。我们拭目以待&#xff01; 本套试卷难度分析&#xff1a;本套试题内容难度中等偏下&#xff0c;考察的知识点都是比较常见的&#xff0c…

不使用宝塔面板 安装 EasyImage 简单图床

发布于 2023-07-17 在 https://chenhaotian.top/linux-app/easy-image/ 前言 如果不希望安装宝塔面板或其国际版 aapanel&#xff08;尽管宝塔面板可以在安装后关闭&#xff09;&#xff0c;那么可以参考这篇文章。 本文安装环境为 Debian 11, 在 Ubuntu 20.04 测试通过 安…

【python 生成器】yield关键字,协程必知必会系列文章--自己控制程序调度,体验做上帝的感觉 1

python生成器系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 第一章 yield — Python (Part I) 文章目录 python生成器系列文章目录前言1. Generator Function 生成器函数2.并发和并行&#xff0c;抢占式和协作式2.Let’…

spring-cloud-注册中心

一、服务注册中心组件(*) 定义&#xff1a;服务注册中心就是在整个微服务架构单独抽取一个服务&#xff0c;该服务不做项目中任何业务功能&#xff0c;仅用来在微服务中记录微服务、对微服务进行健康状态检查&#xff0c;及服务元数据信息存储常用的注册中心&#xff1a;eurek…

python实现双臂老虎机k-armed-bandit

老虎机&#xff0c;投入钱币会随机返还钱币&#xff08;reward&#xff09; 这里设置两台老虎机&#xff0c;一台均值500&#xff0c;标准差5&#xff0c;一台均值550&#xff0c;标准差10 初始值均为998&#xff0c;更新规则为reward之和/轮数 最后结果会在均值附近收敛 impo…

Eigen的基操

转自博客 博客

解析SQL 获取表、字段及SQL查询参数

解析SQL 获取表、字段及SQL查询参数 1. 执行效果2. 使用2.1 引入依赖2.2 相关实体2.3 工具类 1. 执行效果 2. 使用 2.1 引入依赖 <!-- sql 解析处理--><dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifa…

2022年12月 Python(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 下面哪个语句正确定义了元组类型数据tuple1?( ) A: tuple1=[“张三”,“李四”,“王五”] B: tuple1=(“张三”;“李四”;“王五”) C: tuple1=(张三,李四,王五) D: tuple1=(“张三…

Mybatis-Plus最新教程

目录 原理&#xff1a;MybatisPlus通过扫描实体类&#xff0c;并基于反射获取实体类信息作为数据库信息。 ​编辑1.添加依赖 2.常用注解 3.常见配置&#xff1a; 4.条件构造器 5.QueryWrapper 6.UpdateWrapper 7.LambdaQueryWrapper:避免硬编码 8.自定义SQL 9.Iservic…

C++——友元函数

如下是一个日期类&#xff1a; class Date { public:Date(int year 2023, int month 10, int day 1){_year year;_month month;_day day;if (_month < 1 || month > 12 || _day < 1 || _day > GetMonthDay(_year, _month)){cout << "日期不规范&…

[MySQL] MySQL中的数据类型

在MySQL中&#xff0c;数据类型用于定义表中列的数据的类型。在前面的几篇文章中&#xff0c;我们也会看到有很多的数据类型&#xff0c;例如&#xff1a;char、varchar、date、int等等。本篇文章会对常见的数据类型进行详细讲解。希望会对你有所帮助&#xff01; 文章目录 一、…

[黑马程序员Pandas教程]——Pandas读取保存数据

目录&#xff1a; 学习目标读写文件 写文件读取文件 index_col参数指定索引parse_dates参数指定列解析为时间日期类型encoding参数指定编码格式读取tsv文件Pandas读写文件小结读写数据库 安装pymysql包将数据写入数据库从数据库中加载数据总结项目地址 1.学习目标 能够使用Pan…