1. 编程学习网 > 编程教程 > C语言教程 > C语言scanf函数的用法

C语言scanf函数的用法

scanf函数

  上一节中我们讨论了,如何将整数,浮点数,字符串打印到屏幕上去。既然有输出,怎么能没有输入呢?这一节中,我们来介绍与printf相反的scanf函数。

  scanf的功能是将键盘输入的字符串转换成整数、浮点数、字符或字符串。

1. scanf函数的使用公式

  1. scanf是一个变参函数。(参数的数量和类型不确定)
  2. scanf的第一个参数是字符串。
  3. scanf的第一个参数是需要输入的字符串以及需要被读取的占位符。
  4. scanf的后续参数,是依次被读取并赋值的变量地址。
  5. 占位符的类型和数量需要与后续的参数类型和数量对应。
#include <stdio.h>
int main()
{
    short s;
    int n;
    long l;
    float f;
    double df;
    scanf("s=%hd n=%d l=%ld f=%f df=%lf", &s, &n, &l, &f, &df);
    printf("%d %d %d %f %f\n", s, n, l, f, df);
    return 0;
}

  这里读者不必理解如何使用指针,只需要记住以下两条简单的规则:

  1. 如果用scanf()读取基本变量类型的值,在变量名前加一个&。
  2. 如果用scanf()把字符串去读到字符数组中,不要使用&。

scanf

  可以发现scanf是printf的逆向过程。注意,键盘输入的时候,必须要和scanf的第一个参数的字符串对应。也就是说,对于上面的代码输入必须是:

s=1 n=2 l=3 f=4.5 df=6.7

  以下几个是错误的示范

1 2 3 4.5 6.7
不一致,错误
s=1n=2l=3f=4.5df=6.7
由于scanf的第一个参数是"s=%hd n=%d l=%ld f=%f df=%lf",带有空格。
输入漏掉了空格,错误。
当然,如果scanf的第一个参数是"s=%hdn=%dl=%ldf=%fdf=%lf",那么这样就是正确的。
s=1,n=2,l=3,f=4.5,df=6.7
错误,由于scanf的第一个参数是用空格分隔的。

  视频演示


TIPS:

  如果你使用的是较新版本的Visual Studio,scanf这类函数会被认为是不安全的,编译器会抛出C4996错误,并建议你使用别的安全函数替代。

  但是,目前我们并不想引入并讨论这一类安全函数。请将_CRT_SECURE_NO_WARNINGS加入预定义字符串,屏蔽不安全函数错误。

C4996

  添加步骤方式如下:

  1. 解决方案下,工程点右键,进入属性。
  2. 展开C/C++,选择预处理器。
  3. 点击预处理器定义【编辑】。
  4. 将_CRT_SECURE_NO_WARNINGS加入预处理定义。

  视频演示

 

本文由IT教学网整理发布,转载请注明出处:http://www.itjx.com/jiaocheng/cyuyan/596.html

联系我们

在线咨询:点击这里给我发消息

咨询电话:400-998-2681

工作时间:7*24小时无休