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

C语言—scanf函数的详解(上)

     

目录

     

   一:基本用法

   二:语法与格式

    三:怎么输入多个变量?

      四:scanf()会忽略什么字符?


引言:在本文会详细介绍scanf的用法、格式。也会举例子说明我们怎么在scanf输入多个变量,带大家一起探索scanf会忽略什么字符!!!

   一:基本用法

1.  scanf()函数用于读取用户的键盘输入。即用户输入数据后按下回车键,scanf()就会自动处理。
2. 开头有#include <stdio.h>头文件

   二:语法与格式

1.语法:和printf类似,可以参考我上一篇博客。
2. 格式: scanf("%d",&i); 
scanf() 的第⼀个参数 %d ,表⽰⽤户输⼊的应该是⼀个整数。

    第⼆个参数 &i 表⽰,将⽤户从键盘输⼊的整数存⼊变量i。

注意:变量前加上 & (指针变量除外),因为 scanf() 传递的是地址, 即将变量 i 的地址指向用户
输入的值。
如果这⾥的变量是指针变量(比如字符串变量),那就不用加 & 运算符。

    三:怎么输入多个变量?

scanf() 处理数值占位符时,会 自动过滤空白字符,包括空格、制表符、换行符 等。
接下来举个例子:
#include <stdio.h>int main()
{int a = 0;float f = 0;scanf("%d %f",&a,&f);printf("%d %f\n",d,f);return 0;
}

//输入数据5       3.4然后回车键,就会输出5 3.400000(例子中是%d %f,两者之间是一个空

格。)

      四:scanf()会忽略什么字符?

  1:  scanf() 读取用户输入时, %d   %f %lf  %Lf  %s  %[] 会忽略起首的空格。
%c 不忽略空白字符, 总是返回当前第⼀个字符,无论该字符是否为空格。
如果要强制跳过字符前的空白字符,可以写成 scanf("  %c", &ch) ,即 %c 前加上一个空格,表
示跳过零个或多个空白字符。
举个例子:
#include <stdio.h>int main()
{int x;float y;// ⽤⼾输⼊ " -13.45e12# 0"scanf("%d", &x);printf("%d\n", x);scanf("%f", &y);printf("%f\n", y);return 0;
}

或者其他简便写法:

#include <stdio.h>
int main()
{int x;float y;// ⽤⼾输⼊ " -13.45e12# 0"scanf("%d%f", &x,&y);printf("%d%f\n", x,y);return 0;}

// %d 占位符会从 - 处开始获取数据,读 取到 -13 停下来,因为后面的 . 不属于整数的有效字符。这就是说,占位符 %d 会读到 -13

//%f 会读取到 .45e12 ,这是采用科学计数法的浮点数格式。后面的 # 不属于浮点数的有效字符,所以会停在这里。

http://www.lryc.cn/news/2416381.html

相关文章:

  • 函数的调用及作用域D08
  • 【计算机网络】计算机网络的体系结构
  • 代数几何与复分析:黎曼曲面与代数曲线
  • 【SpringBoot应用篇】SpringBoot集成JUnit单元测试
  • tinyxml和rapidxml
  • Windows上Qt开发环境搭建
  • 浅析入侵检测系统及最新研究
  • 攻防世界-easyphp 思路分析
  • 文献翻译 | Frequency Domain De-correlation Parameter in Speech Noise Reduction System Based on Frequency
  • java web配置servlet实现图像验证码
  • artDialog的使用笔记
  • 冰河木马简易使用 ——病毒木马 003
  • 饼状图(PieChart)与柱形图(BarChart)的使用
  • 【视频编解码】H264入门
  • 你们大学还用Protel 99 SE、51单片机吗?
  • ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务【解决思路】
  • 【小呆的力学笔记】弹塑性力学的初步认知三:广义胡克定律
  • linux mrtg 命令,linux服务器之流量监控(MRTG)
  • 【修复版】免费微信小游戏源码h5赛马php网页开源可二次开发,附安装教程
  • css单线边框_css border-collapse设置表格单线边框和双线边框
  • Linux AVG ANTIVIRUS FREE使用介绍
  • CPE上的STUN和TR069功能详解和实验
  • Divx编解码器的研究与设计
  • 系统结构期末复习(四)指令级并行
  • deleteRow() 连续删除多行
  • js发送邮件
  • 怎么查看文件的MD5码
  • 一、 QTP的前世今生
  • 基于VirtualBox虚拟机安装Ubuntu图文教程
  • jersey 入门示例_Jersey Web Service Hello World Java示例