学科分类
目录
C语言

printf()函数

scanf()函数用于读取用户从键盘输入的数据,它可以灵活接收各种类型的数据,如字符串、字符、整型、浮点数等,scanf()函数也可以通过格式控制字符控制用户的输入,但它只使用类型(%d、%c、%f等)格式控制,并不使用宽度、精度、标志等格式控制。scanf()函数的类型格式控制用法与printf()函数一样。

scanf()函数用法示例如下:

int a;
char c;
float f;
scanf("%d", &a);      //接受一个从键盘输入的整型数据
scanf("%c", &c);      //接受一个从键盘输入的字符类型数据
scanf("%f", &f);      //接受一个从键盘输入的float类型数据

调用scanf()函数时,参数变量的前面有一个“&”符号,这是取地址运算符,表示取已定义变量的存储地址,通过键盘输入将数据存储到该变量中。关于该符号将在第5章(指针)讲解,这里读者知道scanf()参数变量前必须添加该符号即可。

在使用scanf()函数获取用户输入的信息时,如果输入的信息中包含终止符,scanf()函数就认为输入结束。例如,使用scanf()函数输入一个字符串,存储到数组中,示例代码如下:

char arr[20];         //定义字符数组arr,大小为20
scanf("%s",&arr);   //从键盘读取字符串,存储到数组arr中

执行上述代码,从键盘读取字符时,如果输入“Hello world”,程序只会读取到Hello,后面的world不会读取,这是因为Hello world中包含一个空格,空格是一个终止符,scanf()只能读到空格之前的内容。

C语言中常见的终止符如表1所示。

表1 scanf()函数常见终止符

字符 含义
0x20 空格
\t 水平制表符(tab键)
\n 换行
\v 垂直制表符
\f 换页
\r 回车

在后面的章节学习中,本教材会经常调用scanf()函数从键盘读取数据,读者会慢慢深入掌握scanf()函数的使用,在这里,读者了解scanf()的调用规则即可。

img小提示:关闭安全检查

使用Visual Studio2019调用scanf()函数时,由于scanf()函数是一个不安全的函数,Visual Studio2019对此检查比较严格,因此编译不会通过,提示scanf()函数不安全,需要关闭安全检查。Visual Studio2019关闭安全检查,需要在本文件最顶部添加一行代码:#define CRTSECURENOWARNINGS,必须是在最顶部添加,添加在其他地方无效。

C11标准使用scanfs()函数代替了scanf()函数,scanfs()函数是一个安全函数,但它是C11标准新增加的函数,目前还有很多编译器不支持,本教材为了提高代码的可移植性,仍使用scanf()函数从键盘读取输入的数据。

点击此处
隐藏目录