scanf函数

  • 简介
  1. scanf是 Scan Format 的缩写,意思是格式化扫描,也就是从键盘获得用户输入。
  2. scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
  3. scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include <stdio.h>。)
  • 函数原型

int scanf(const char * restrict format,…);

  • 一般形式
    scanf函数的一般形式为:

scanf(“格式字符串”, 地址表列);

格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。
地址表列中给出各变量的地址(由地址运算符“&”后跟变量名组成)。
例:
要输入一个整型变量 a (int型)的值。

#include<stdio.h>
int mian(){int a;scanf("%d",&a);prinntf("%d",a);return 0;
}

此时我们编译运行后从键盘敲入一个值(int型范围内),再按回车键即将这个值输入给了变量 a 。

格式字符串

格式字符串的一般形式为:

%(*)(域宽)(长度修饰符)格式说明符

括号内的都不是必要元素,皆可省略。

  1. 常用的格式说明符
%d //输入十进制整数
%o //输入八进制整数
%x //输入十六进制整数
%u //输入无符号十进制整数
%f //输入实型数(用小数形式或指数形式)
%e //同上
%c //读入单个字符
%s //输入字符串

ps:输入类型与格式必须一一对应,否则会造成warming或error。

  1. (*)

表示读入的数据将被舍弃。带有*的格式指令不对应可变参数列表中的任何数据。
例:

scanf("%d %*d %d",&a,&b);

当输入为:1 2 3时,1赋给 a ,2舍弃,3赋给 b 。

拓展:" "内除了格式字符串以外的都要原封不动地输入才能让计算机有效地读取所需要的数据并将其赋给对应的变量。

例:(如未说明,以下所有数据都默认为int型)

scanf("%d",&a);      //对应输入为:1
scanf("a=%d",&a);    //对应输入为:a=1
scanf("%d %d",&a,&b);//对应输入为:1 2(中间有几个空格就敲几个空格)
scanf("%d,%d",&a,&b);//对应输入为:1,2(注意区分中英文符号);1
scanf("%d%d",&a,&b); //对应输入为:1 2(中间对应空格键,回车键或TAB键)
  1. 域宽
    一个非零的十进制整数形式出现,表示该格式指令最多读入的字符数。

例:

scanf("%5d",&a);//当输入为:1234567时,将12345赋给a,其余舍弃。
scanf("%3d%3d",&a,&b);//当输入为:1234567时,将123赋给a,456赋给b。

ps:scanf函数中没有精度控制,
如:scanf("%5.2f",&a);是非法的(此处a为float型)。
不能企图用此语句输入小数为2位的实数。

  1. 长度修饰符号
    常用的两个长度格式符为l和h(其中l最为常用)。
    l表示输入长整型数据(如%ld)和双精度浮点数(如%lf)。
    h表示输入短整型数据。

未完待续。。。

C语言的scanf函数相关推荐

  1. C语言之 scanf() 函数的用法

    C语言之 scanf() 函数的用法 输入一个正整数,对这个正整数中的各位进行比较,输出最大那个数 比如: 输入:123456789 输出:9 #include <stdio.h>int ...

  2. C语言的scanf函数在visualstudio中的错误

    错误:这个函数或者变量不安全,考虑使用scanf_s代替. 若此描述失效,则使用_CRT_SECURE_NO_WARNINGS. scanf是C语言提供的,而scanf_s不是标准C语言提供的,是VS ...

  3. 【C语言】scanf函数详解(常见问题处理)

    目录 一.scanf函数介绍 二.空白字符和非空白字符 三.scanf函数使用注意事项 四.scanf函数使用常见问题 一.scanf函数介绍 scanf()是C语言中的一个输入函数.与printf函 ...

  4. 【C语言】scanf函数

    目录 C语言中scanf函数的使用 函数介绍 格式字符 附加格式说明字符表 空白字符 非空白字符 简例说明 方法一 方法二 C语言中scanf函数的使用 函数介绍 函数名:scanf 函数功能:执行格 ...

  5. 【C语言】scanf函数报错

    一.为什么visual studio用scanf_s而不是scanf作为输入函数 其主要原因是scanf存在越界访问内存问题 #define _CRT_SECURE_NO_WARNINGS 1 #in ...

  6. 【C语言】scanf函数格式控制符

    格式控制说明符: %d:输入一个十进制整数 %i:输入一个整数,可以是十进制或 带前缀0的八进制整数 或 带前缀0x的十六进制整数 %o:以八进制形式输入一个整数(带不带前缀都行) %x:以十六进制 ...

  7. C语言-用scanf函数输入数组

    使用for循环实现数组输入 int n = 0; int list[20] = { 0 }; int i= 0:scanf("%d",&n); //用户输入数组长度 for ...

  8. c语言scanf函数计算乘积,C语言Scanf函数

    C语言的scanf函数 一.变量的内存分析 (一)字节与地址 ①. 内存以字节为单位 每个字节都有自己的内存地址,根据地址就可以找到该字节.整个内存相当于一整个酒店,而酒店以房间为单位,在这里每个房间 ...

  9. scanf函数解析,附带rewind函数(清空缓存)

    scanf函数:int scanf(const char * __restrict, -) __scanflike(1, 2); 参考资料:小话c语言(3)--scanf函数,想说输入不容易! // ...

最新文章

  1. java事务设计iofo,Spring事务最佳实践
  2. Mysql的row_format(fixed与dynamic)
  3. Linux下网络编程
  4. c# mvc html.beginform,asp.net-mvc – 使用Html.BeginForm()与自定义路由
  5. 巧用ActionFilter的AOP特性,为返回的数据增加返回码和消息
  6. mysql查询语句不返回_PHP-CI MySQL查询联接表,并且where语句不返回所...
  7. mysql数据的表分区一
  8. linux read命令详解
  9. oracle数据库自动备份控制文件的目录,16.5 控制文件的自动备份和还原(1)
  10. 图书管理系统C语言课程设计
  11. 【Win10桌面美化】一个精致的程序员桌面是怎样的呢(花了一上午时间两种风格!)
  12. 2022年小米产业链研究报告
  13. app的性能测试小工具Emmagee使用教程
  14. 2022年信息安全工程师考试知识点:网络安全防御
  15. vue路由守卫的执行顺序
  16. C++编译器优化:Copy Elision
  17. [NOI 1997] 积木游戏(dp)
  18. choice量化交易数据接口引发的问题
  19. HTML_hao123
  20. jmeter并发测试教程_JMeter压力测试并发测试(入门篇)

热门文章

  1. 湖北职高考计算机本科多少分,2016年湖北高考高职高专录取分数线
  2. c++ copyfile
  3. C++ CopyFile()
  4. 光伏逆变器国抽合格率不足八成引关注
  5. Unity 基于法线和深度实现完美描边,可独立控制物体描边
  6. 商显屏战场硝烟四起,转型的国产彩电巨头如何“破局”?
  7. ssl 原理和建立连接过程
  8. Autoform R7冲压材料参数卡高级CAE视频教程
  9. java中的账户冻结原理_我的申请冻结了
  10. LCP 29. 乐团站位(leetcode)