scanf和printf介绍

2023-11-01

1.scanf

scanf函数是C语言中标准库中的输入函数,其主要作用是从标准输入设备(如键盘)获取输入数据,并将读取的数据存储到指定的变量中。其基本用法如下:

  1. 读取整型数据:
int num;
scanf("%d", &num); // 从标准输入读取一个整数,并将其存储到变量num中
  1. 读取浮点型数据:
float f;
scanf("%f", &f); // 从标准输入读取一个浮点数,并将其存储到变量f中
  1. 读取字符:
char ch;
scanf("%c", &ch); // 从标准输入读取一个字符,并将其存储到变量ch中
  1. 读取字符串:
char str[100];
scanf("%s", str); // 从标准输入读取一个字符串,并将其存储到字符数组str中
  1. 读取多个数据:
int a, b, c;
scanf("%d %d %d", &a, &b, &c); // 从标准输入读取三个整数,并将其存储到变量a、b、c中
  1. 使用scanf的返回值:

scanf函数的返回值为读入的变量数量,即成功读取并存储的变量个数。因此,可以利用scanf函数返回值来判断输入是否合法:

int a, b;
if (scanf("%d %d", &a, &b) != 2) {
    // 输入格式错误,需要重新输入
}

printf() 是在标准库的头⽂件 stdio.h 定义的。使⽤这个函数之前,必须在源码⽂件头部引⼊这
个头⽂件

1.1占位符

在C语言中,占位符是指在格式化输出函数(如printf)和格式化输入函数(如scanf)中用来表示输出或输入不同类型的数据的特殊字符。下面是一些常用的占位符及其用法:

  1. %c:输出/输入一个字符
char c = 'A';
printf("%c\n", c); // 输出字符'A'

char c;
scanf("%c", &c); // 从标准输入读取一个字符,并将其存储到变量c中
  1. %d或%i:输出/输入一个带符号的十进制整数
int num = 123;
printf("%d\n", num); // 输出整数123

int num;
scanf("%d", &num); // 从标准输入读取一个整数,并将其存储到变量num中
  1. %u:输出/输入一个无符号的十进制整数
unsigned int num = 123;
printf("%u\n", num); // 输出无符号整数123

unsigned int num;
scanf("%u", &num); // 从标准输入读取一个无符号整数,并将其存储到变量num中
  1. %f:输出/输入一个浮点数
float f = 1.23;
printf("%f\n", f); // 输出浮点数1.23

float f;
scanf("%f", &f); // 从标准输入读取一个浮点数,并将其存储到变量f中
  1. %s:输出/输入一个字符串
char str[] = "Hello";
printf("%s\n", str); // 输出字符串"Hello"

char str[100];
scanf("%s", str); // 从标准输入读取一个字符串,并将其存储到字符数组str中
  1. %p:输出一个指针的地址
int num = 123;
printf("%p\n", &num); // 输出变量num的地址

int *p;
scanf("%p", &p); // 从标准输入读取一个指针,并将其存储到指针变量p中

除上述占位符外,还有其他占位符用于输出/输入不同类型的数据,如%x或%X用于输出/输入一个带符号/无符号的十六进制整数,%o用于输出/输入一个八进制整数,%e或%E用于输出/输入一个带指数的浮点数等。需要根据具体情况选用合适的占位符。

2.printf

在C语言中,printf是一个标准库函数,用于格式化输出数据。它可以将文本和变量按照指定的格式输出到控制台或文件中。

printf函数的原型如下:

int printf(const char *format, ...);

其中,第一个参数format是输出格式字符串,包含普通字符和格式化占位符。第二个及后面的参数是要输出的变量。

下面是一个例子:

int num = 123;
char ch = 'A';
float f = 1.23;

printf("num=%d, ch=%c, f=%f\n", num, ch, f);

上述代码将输出:

num=123, ch=A, f=1.230000

在输出格式字符串中,普通字符会按照原样输出,而占位符则会被相应的变量替换。

常用的格式化占位符包括:

  • %d或%i:输出一个带符号的十进制整数
  • %u:输出一个无符号的十进制整数
  • %f:输出一个浮点数
  • %c:输出一个字符
  • %sv:输出一个字符串
  • %p:输出一个指针的地址

除此之外,还有其他的格式化占位符可供使用,如%x或%X用于输出/输入一个带符号/无符号的十六进制整数,%o用于输出/输入一个八进制整数,%e或%E用于输出/输入一个带指数的浮点数等。
需要注意的是,在输出格式字符串中,所有的占位符都必须与对应的变量类型匹配,否则会导致输出结果出错。
除了基本的格式化输出之外,printf函数还支持一些高级用法,如控制输出宽度、精度、对齐方式等。需要根据具体情况选择合适的输出格式,以达到所需的输出效果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scanf和printf介绍 的相关文章

随机推荐

  • 主成分分析二级指标权重_权重赋值之“主成分分析法”

    主成分分析 Principal Component Analysis PCA 最早是由K 皮尔森 Karl Pearson 对非随机变量引入的一种统计方法 尔后H 霍特林将此方法推广到随机向量的情形 主成分是指通过正交变换将一组可能存在相关
  • 阿里云物联网Iot设备上下线状态数据流转的设置

    要想通过物联网平台实现远程监控设备 那么就要建立监控端设备 比如手机 和被监控端设备的数据交互 在阿里云物联网平台完成这个交互功能的方法就是建立两个设备之间的数据流转 对于设备要流转的物模型数据 阿里云网站上已经有详细的示例介绍 但是对于设
  • 最大上升序列Super Jumping! Jumping! Jumping!

    多组输入 第一个数代表有多少个数据 输入0结束 Sample Input 3 1 3 2 4 1 2 3 4 4 3 3 2 1 0 Sample Output 4 10 3 1到3最大 1到2到3到4最大 直接到三最大 include
  • 尚硅谷 Vue 2.0 + Vue 3.0 入门到精通教程学习笔记 (二)

    第二章 Vue 组件化编程 2 1 模块与组件 模块化与组件化 2 1 1 模块 1 理解 向外提供特定功能的 js 程序 一般就是一个 js 文件 2 为什么 js 文件很多很复杂 3 作用 复用 js 简化 js 的编写 提高 js 运
  • Qt 无边框、透明、可移动、的个性窗体

    原文地址 转载 Qt 无边框 透明 可移动 的个性窗体案例详解 作者 风贝 很多朋友都问透明的效果怎么做 为什么自己做的无边框窗体不可移动 一个个回答的很累 干脆写出来分享下好了 我只用代码说话 工程的main cpp int main i
  • python菜单栏_「每日一练」Python实现下拉和弹出式菜单

    用Python就一定要用到界面操作 有一个好的用户界面 才会有好的用户体验 下边就开始创建我们的主窗口 并实现下拉和弹出式菜单 案例 创建主窗口 并实现下拉和弹出式菜单 先上代码 运行效果 题目详述 第一行 import tkinter a
  • Jupyter notebook显示连接失败、服务器正忙

    pip install tornado 4 5 成功
  • # AutoLeaders控制组—51单片机学习笔记(LED控制、独立按键、数码管)

    51单片机 1 单片机基础 1 1 内部构成 CPU RAM ROM 定时器 中断系统 通讯接口等 相当于袖珍版计算机 一个芯片能构成完整的计算机系统 1 2 51单片机 公司 STC公司 位数 8位 RAM 512字节 第二天丢失 相当于
  • HashMap底层源码分析

    HashMap HashMap 是一个散列表 它存储的内容是键值对 key value 映射 HashMap是非线程安全的 实现了 Map 接口 根据键的 HashCode 值存储数据 具有很快的访问速度 最多允许一条记录的键为 null
  • 编译原理期末习题考试复习题目(重点三)

    编译原理期末习题考试复习题目 重点三 目录 编译原理期末习题考试复习题目 重点三 三 判断题 四 简答题 三 判断题 下列各题 你认为正确的 请在题干的括号内打 错的打 1 计算机高级语言翻译成低级语言只有解释一种方式 X 2 在编译中进行
  • CMOS图像传感器——pipeline像素控制

    一 传统像素操作 传统CMOS图像传感器的芯片架构中 像素的控制信号从水平方向驱动 像素的源极跟随器输出电压垂直地输出到位于顶部和底部的模拟前端读出电路 其具体实现方式如下图所示 其中RST TX和SEL是像素水平控制信号 像素输出电压PI
  • CMake中aux_source_directory的使用

    CMake中的aux source directory命令用于查找目录中的所有源文件 其格式如下 aux source directory
  • 新手如何有效的刷算法题(LeetCode)

    点击关注上方 五分钟学算法 设为 置顶或星标 第一时间送达干货 来源 五分钟学算法 前言 作为一名非科班出身的程序员 我是参加工作之后才开始接触算法 学算法至今有将近五年的时间 期间输出文字约 100 多万 从算法小白到写出百万阅读的算法文
  • python3 mmh3安装及使用

    mmh3安装方法 哈希方法主要有MD SHA Murmur CityHash MAC等几种方法 mmh3全程murmurhash3 是一种非加密的哈希算法 常用于hadoop等分布式存储情境中 在anaconda中安装使用命令 pip in
  • 【项目实战】AOSP源码阅读与目录结构

    一 背景 随着Android系统的不断发展 了解其内部实现和架构变得越来越重要 AOSP Android Open Source Project 是Android的开放源代码项目 为开发者提供了详细的源代码和工具 使得我们能够深入了解And
  • 【2023年电赛】运动目标控制与自动追踪系统(E 题)最简单实现

    本方案的思路是最简单的不涉及复杂算法 识别矩形框 标记矩形框 输出坐标和中心点 计算长度 控制舵机移动固定长度 仅供完成基础功能参考 不喜勿喷 实现运动目标控制与自动追踪系统 任务概述 本文将介绍如何使用OpenMV开发板和舵机构建一个运动
  • I/O,文件操作,File类

    前言 小亭子正在努力的学习编程 接下来将开启javaEE的学习 分享的文章都是学习的笔记和感悟 如有不妥之处希望大佬们批评指正 同时如果本文对你有帮助的话 烦请点赞关注支持一波 感激不尽 目录 前言 前驱知识 文件 目录 文件路径 Path
  • 阿里短信服务集成

    技术分享交流群 1125844267 大家可以进来唠嗑闲聊 前言 目前阿里短信不支持个人申请签名和模板 所以只能使用测试版固定的签名和模板 提示 以下是本篇文章正文内容 下面案例可供参考 一 控制台配置 1 进入阿里云官网 搜索 短信服务
  • Hyperledger Fabric全面理解

    Fabric结构 Fabric结构 Fabric 0 6的特点 结构简单 应用 成员管理 Peer的三角形关系 主要业务功能全部集中于Peer节点 架构问题 由于peer节点承担了太多的功能 所以带来扩展性 可维护性 安全性 业务隔离等方面
  • scanf和printf介绍

    1 scanf scanf函数是C语言中标准库中的输入函数 其主要作用是从标准输入设备 如键盘 获取输入数据 并将读取的数据存储到指定的变量中 其基本用法如下 读取整型数据 int num scanf d num 从标准输入读取一个整数 并