C语言中scanf函数的使用
函数介绍
函数名:scanf
函数功能:执行格式化输入
用法:
int scanf(char *format[,argument,...]);
scanf函数是通用终端格式化输入函数,它从标准输入设备(键盘)读取输入信息,可以读入任何固有类型的数据并自动把数值转换成适当的机内形式。
调用格式:
scanf(“<格式化字符串>”,<地址表>);
格式化函数返回成功赋值的数据项数,出错时则返回EOF.
控制字符串由三类字符构成
1:格式化说明符
2:空白符
3:非空白符
格式字符
格式字符 | 说明 |
---|---|
%a | 读入一个浮点值(仅C99有效) |
%A | 同上 |
%c | 读入一个字符 |
%d | 读入十进制整数 |
%i | 读入十进制,八进制,十六进制整数 |
%o | 读入八进制整数 |
%x | 读入十六进制整数 |
%X | 同上 |
%c | 读入一个字符 |
%s | 读入一个字符串 |
%f | 读入一个浮点数 |
%lf | 读入一个高精度浮点数 |
%p | 读入一个指针 |
%u | 读入一个无符号十进制整数 |
%n | 至此已读入值的等价字符数 |
%[] | 扫描字符集合 |
%% | 读%符号 |
附加格式说明字符表
修饰符 | 说明 |
---|---|
L/l 长度修饰符 | 输入"长"数据 |
h 长度修饰符 | 输入"短"数据 |
W 整型常数 | 指定输入数据所占宽度 |
* 星号 | 空读一个数据 |
hh,ll同上h,l | 仅对C99有效。 |
空白字符
空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符,空白符可以是space,tab,newline等等,直到第一个非空白符出现为止。
非空白字符
一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符
简例说明
#include <stdio.h>
int main()
{
int a, b, sum;//一、定义变量,int代表数据类型——整数,sum求和;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);//二、输入数据,%d对输入类型的限制代表——整数,并把这俩个数分别给&a和&b两个变量,&取地址运算符;
sum = a + b;//三、数据处理,把a、b的和赋值给sum;
printf("这两个数的和是:%d\n", sum);//四、输出结果,%d输出一个整形数这个数就是sum;
return 0;//返回;
}
在vs中编译程序,出现报错 error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
解析此错误,可知两种修改方法:
方法一
1. 将scanf修改为scanf_s。学习C语言,不推荐使用scanf_s
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a, b, sum;//一、定义变量,int代表数据类型——整数,sum求和;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);//二、输入数据,%d对输入类型的限制代表——整数,并把这俩个数分别给&a和&b两个变量,&取地址运算符;
sum = a + b;//三、数据处理,把a、b的和赋值给sum;
printf("这两个数的和是:%d\n", sum);//四、输出结果,%d输出一个整形数这个数就是sum;
return 0;//返回;
}
但很显然,每次都敲一遍为我们写代码带来不便。
方法二
2. use _CRT_SECURE_NO_WARNINGS
通过修改vs2019配置文件使其每次新添加项后直接出现
1.找到vs2019所在文件—图标上右键,打开文件所在位置
2.查找到当前位置
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC\VCProjectItems
查看是否存在newc++file.cpp文件(未存在,可能vs安装有误)
3.使用管理员权限运行记事本
右击使用管理员身份运行
4.点击文件–打开—找到
C:\Program Files (x86)\Microsoft VisualStudio\2019\Community\Common7\IDE\VC\VCProjectItems
目录
5.在此目录下,将文本文档改为所有文件,点击newc++file.cpp打开
6.将
#define _CRT_SECURE_NO_WARNINGS 1
复制粘贴到该记事本中保存后退出即可。
#define _CRT_SECURE_NO_WARNINGS 1
7 如图,可在vs中新建cpp文件后直接显现