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

介绍一下printf,scanf

  1. printf 函数
    • 功能概述
      • printf是 C 语言中的一个标准输出函数,用于将格式化的数据输出到标准输出设备(通常是控制台)。它能够根据指定的格式字符串将变量的值转换为相应的文本格式并显示出来。
    • 格式字符串
      • 格式字符串是printf函数的关键部分,它包含普通字符和转换说明符。普通字符会原样输出,而转换说明符则用于指定如何输出变量的值。例如,%d用于输出十进制整数,%f用于输出浮点数,%c用于输出单个字符等。
      • 示例:

展开过程

  • 在这个例子中,"The number is %d\n"是格式字符串,%d是转换说明符,用于输出整数变量num的值。\n是一个普通字符,表示换行。
  • 输出多种类型数据
    • 可以在一个printf函数中输出多种类型的数据。例如:

展开过程

  • 这里分别使用%d%f%c输出了整数、浮点数和字符类型的数据。
  • 格式化控制细节
    • 可以控制输出的宽度、精度等。例如,%8d表示输出的整数占 8 个字符宽度(如果不足 8 位会在前面补空格),%.2f表示输出浮点数保留两位小数。

展开过程

  • 输出结果为Number: 5, Pi: 3.14

  1. scanf 函数
    • 功能概述
      • scanf是 C 语言中的标准输入函数,用于从标准输入设备(通常是键盘)读取用户输入的数据,并根据指定的格式字符串将输入的数据存储到相应的变量中。
    • 格式字符串与变量地址
      • 格式字符串的使用方式与printf类似,但需要注意的是,在scanf中,变量前面要加上取地址运算符&,因为scanf需要知道变量在内存中的位置才能将输入的数据存储进去。例如:

展开过程

  • 这里scanf("%d", &num)表示从键盘读取一个整数,并将其存储到变量num中。&num获取了变量num的地址。
  • 读取多种类型数据
    • 可以同时读取多种类型的数据。例如:

展开过程

  • 注意在格式字符串"%d%f %c"中,%d%f之间没有空格,这意味着在输入时,年龄和身高可以连续输入,而%f%c之间有一个空格,这表示在输入身高和性别之间可以有一个空格。
  • 可能出现的问题
    • 输入缓冲区问题:如果输入的数据格式与scanf要求的格式不匹配,可能会导致输入缓冲区残留数据,影响后续的输入操作。例如,如果scanf期望一个整数,但用户输入了一个字符,那么scanf可能会出错,并且这个错误的输入可能会留在输入缓冲区,干扰下一次输入。
    • 安全性问题:scanf函数在处理字符串输入时,如果不谨慎使用,可能会导致缓冲区溢出。例如,使用%s读取字符串时,没有限制输入字符串的长度,可能会导致程序崩溃或者被恶意利用。为了避免这种情况,可以使用更安全的函数,如fgets结合sscanf来处理字符串输入。

http://www.kler.cn/a/413910.html

相关文章:

  • java八股-分布式服务的接口幂等性如何设计?
  • 【.net core】【sqlsugar】子查询时的注意事项(持续更新)
  • Python双向链表、循环链表、栈
  • 数据结构C语言描述5(图文结合)--队列,数组、链式、优先队列的实现
  • C++优质学习资源汇总
  • Ubuntu20.04安装kalibr
  • C++ 模板与泛型编程
  • OceanBase 大数据量导入(obloader)
  • 【论文复现】农作物病害叶子图像分割
  • c# httppost请求接口传参数及图片上传,非常实用
  • 电子应用设计方案-28:智能云饭锅系统方案设计
  • 网络--传输层协议--UDP
  • 【C#】调用外部应用
  • Network Link Conditioner Mac 上模拟网络环境工具的安装和使用
  • Mybatis-plus 3.5.9 版本 PaginationInnerInterceptor 插件更新
  • 数据结构与算法学习笔记----并查集
  • 人工智能中的数据结构:构建智能算法的基石
  • 3D技术如何应用到汽车营销中?
  • OpenCV相机标定与3D重建(6)将3D物体点投影到2D图像平面上函数projectPoints()的使用
  • log4c库使用
  • 【数据结构与算法】链表之美-复杂链表的复制与链表的插入排序
  • 占用磁盘100%?Apache DolphinScheduler 日志如何定时清理!
  • IntelliJ+SpringBoot项目实战(十七)--在SpringBoot中整合SpringSecurity和JWT(下B)
  • Excel按固定行数拆分为多个Excel
  • 屏幕触控支持指纹修改
  • 数据集成工具Kafka、Nifi和Talend功能大对比!