• 1.摘要
  • 2.基本信息
  • 3.发展历程
  • 4.主要内容
  • 4.1.返回数值
  • 4.2.格式指令说明
  • 4.3.*符号
  • 4.4.域宽
  • 4.5.格式说明符
  • 4.6.长度修饰符
  • 5.空白字符和非空白字符
  • 5.1.空白字符
  • 5.2.非空白字符
  • 6.注意问题
  • 6.1.问题一
  • 6.2.问题二
  • 6.3.问题三
  • 6.4.问题四
  • 7.参考资料

scanf

计算机语言函数

scanf函数是C语言中最常用的一个输入函数1。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

基本信息

  • 中文名

    格式输入

  • 外文名

    Scan Format

  • 外语缩写

    scanf

  • 应用学科

    计算机科学

  • 软件语言

    C/C++

  • 属性

    标准库函数

发展历程

发展历史

使用scanf函数进行输入,必须指定输入的数据的类型和格式,不仅繁琐复杂,而且很容易出错。C++保留scanf只是为了和C兼容,以便过去用C语言写的程序可以在C++的环境下运行。C++的编程人员都愿意使用cin进行输入,很少使用scanf。

但是scanf有一个明显的优点,速度比cin函数快

主要内容

函数原型

1/3

函数 scanf() 是从标准输入流stdio (标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。

返回数值

scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。

如:

函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;

如果只有a被成功读入,返回值为1;

如果a和b都未被成功读入,返回值为0;

如果遇到错误或遇到end of file,返回值为EOF。end of file为Ctrl+z 或者Ctrl+d。

例:使用scanf函数输入数据。

&a,&b,&c中的&是寻址操作符,&a表示对象a在内存中的地址,是一个右值。变量a,b,c的地址是在编译阶段分配的(存储顺序由编译器决定)。

这里注意:如果scanf中%d是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔,只能用空白字符(空格或tab键或者回车键)分隔——“2 (空格)3(tab) 4” 或 “2(tab)3(回车)4”等。若是“%d,%d,%d”,则在输入数据时需要加“,”,如“2,3,4”。