首页 > 其他分享 >介绍一下printf,scanf

介绍一下printf,scanf

时间:2024-11-28 22:58:54浏览次数:5  
标签:输出 scanf 介绍 printf 字符串 格式 输入

  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来处理字符串输入。

标签:输出,scanf,介绍,printf,字符串,格式,输入
From: https://blog.csdn.net/lb3636363636/article/details/144122750

相关文章

  • 【电子元器件】Nand Flash基础介绍
    本文章是笔者理论结合实践进行整理的备忘笔记。希望在帮助自己温习避免遗忘的同时,也能帮助其他需要参考的朋友。如有谬误,欢迎大家进行指正。一、什么是NandFlashFlash主要分两种,NandFlash和Norflash。Nor的成本相对高,容量相对小,比如常见的只有128KB,256KB,1MB,2MB等等,优点是......
  • 主流开源大模型基于Server适配PyTorch NPU推理指导- 推理场景介绍
    方案概览本方案介绍了在ModelArts的LiteDevServer上使用昇腾计算资源开展常见开源大模型Llama、Qwen、ChatGLM、Yi、Baichuan等推理部署的详细过程。本方案利用适配昇腾平台的大模型推理服务框架vLLM和华为自研昇腾Snt9B硬件,为用户提供推理部署方案,帮助用户使能大模型业务。......
  • prompt提示工程介绍--如何更好的使用AI
    我们向大模型提问,就如同去看病时向医生描述自己的症状,描述的越清楚和详细,医生给出的判断可能越准。在大模型能力不变的情况下,大模型回复的质量,完全取决于我们提问的质量。你可以把大模型想象成一位远方的专家,你只能通过发消息跟他互动(请教问题),显然,你给他发的信息的质量如何,直接......
  • 抽象类的介绍与题目练习
    1. 定义抽象类是一种不能被实例化的类,在Java中使用 abstract 关键字来声明。抽象类的主要目的是为它的子类提供一个通用的模板,定义一些子类必须实现的方法。2. 特点包含抽象方法:抽象类可以包含抽象方法。抽象方法是只有方法签名而没有方法体的方法,就像上面 Shape 类中......
  • Brduino脑机连载(二十)推荐了解-Brduino脑机开发模组介绍
    Brduino:脑机学习/开发平台在脑机接口(Brain-ComputerInterface,BCI)技术蓬勃发展的浪潮中,Brduino作为一款具有广泛影响力的脑机学习开发板(前身为BCIduino脑机模组(点击查看),我们做了改良之后重新发布(点击查看)),为科研人员、开发者以及爱好者提供了一个强大且灵活的工具,助力他们......
  • 请介绍下js的数据类型
    JavaScript的数据类型可以分为两大类:原始类型(PrimitiveTypes)和对象类型(ObjectTypes)。1.原始类型(PrimitiveTypes)原始类型的值是不可变的,它们直接存储在栈内存中,代表了单个值。JavaScript有七种原始类型:Number:表示数字,包括整数和浮点数。例如:10,3.14,-5,I......
  • hhdb数据库介绍(9-13)
    计算节点特色功能SQL流控计算节点支持对高并发SQL语句进行自动的流量控制功能,可以自动识别高消耗SQL且限制同一时间内高消耗SQL执行的并发数和效率,从而稳定数据库服务。也提供查询入口使用户尽可能多的识别高消耗SQL语句并优化SQL以提升数据库整体服务性能。当正在执行的SQL缓......
  • hhdb数据库介绍(9-14)
    函数与操作符计算节点对函数的支持此文档仅列出部分经特殊处理的函数,若需要了解所有计算节点支持的函数,请向官方获取《计算节点最新功能清单》。函数名称支持状态是否拦截说明ABS()支持否ACOS()支持否ADDDATE()支持否ADDTIME()支持否AES_DE......
  • hhdb数据库介绍(9-12)
    计算节点特色功能在线修改分片字段支持在服务端口直接使用SQL语句进行在线修改分片字段的操作,业务表在变更期间不会锁表,业务可对原表进行正常的SIUD操作。使用方法alter修改分片字段语法如下:altertabletable_namechangeshardcolumnnew_column;例如将源表sbtest1分片字......
  • Linux 下编辑器vi介绍(三)
    Linux下编辑器vi介绍(三)vim的末行模式(1).地址定界:start_pos,end_pos#:具体的第#行,例如:2表示第2行;#,#:从左侧#表示起始,到右侧#表示结束;#,+#:从左侧#表示的行开始,加上右侧#表示的行数;.当前行;$:最后一行;%:全文;相当于(1,$)/pat1/,/pat2/:表示从第一次被pat1匹配到的行开始,一直到......