1.VS不允许使用scanf进行输入,在使用scanf_s进行多种数据类型输入时,有字符型输入时会报错
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,ret; //ret作为匹配值,确定scanf_s匹配中几个标准输入
char c;
float b;
double q;
ret=scanf_s("%d %c%f%lf",&a,&c,&b,&q); //1.这里要注意有字符型时必须在%c前空一格 2.输入double时要用%lf输入,否则在scanf_s时存放数double类型时存放不了
printf("%d,%c,%f,%f,%d",a,c,b,q,ret);
}
就会报错下面这种样子,具体原因现在不理解:

但是在程序第一行#define _CRT_SECURE_NO_WARNINGS 便可以正常使用scanf而不需要使用scanf_s,且程序正常运行,如下
#define _CRT_SECURE_NO_WARNINGS //放第一行便可以使用scanf
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
char k;
float f;
double n;
int ret;
ret=scanf("%d %c%f%lf", &i,&k,&f,&n);
printf("%d %c %f %f %d\n",i,k,f,n,ret);
}
`

被折叠的 条评论
为什么被折叠?



