VSscanf中,我明明添加了#define _CRT_SECURE_NO_WARNINGS,为什么还是报错?
#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
typedef struct guan
{
char* id;
char* name;
int* sl;
double* price;
}guan;
void lr(guan guan1[], int* num); //录入设备
void ck(guan guan[], int* num);
void guanliyuan();
test.cpp:
#include<stdio.h>
#define _CRT_SECURE_NO_WARNINGS
#include"test.h"
/*struct guan
{
char *id;
char *name;
int state;
int sl;
double price;
}sheb;*/
void jinru()
{
printf(" 欢迎使用设备借还系统 \n");
printf("(1)管理员系统\n");
printf("(2)用户登录系统\n");
printf("(3)用户注册系统\n");
printf("(4)退出\n");
printf("请输入:");
}
int main()
{
int a;
struct guan guan[1000];
jinru();
scanf("%d", &a);
switch (a)
{
case 1:
guanliyuan();
break;
case 2:
printf("用户登录系统\n");
break;
case 3:
printf("用户注册系统\n");
break;
case 4:
printf("退出\n");
break;
default:
printf("error\n");
break;
}
}
test2.cpp:
#include"test.h"
void lr(guan guan1[], int* num)
{
while (1)
{
printf("请输入设备编号:\n");
scanf("%c\n", guan1[*num].id);
printf("请输入设备名称:\n");
scanf("%c\n", guan1[*num].name);
printf("请输入设备数量:\n");
scanf("%d\n", guan1[*num].sl);
printf("请输入设备价格:\n");
scanf("%lf\n", guan1[*num].price);
*num++;
char j;
printf("是否继续录入(y/n):\n");
scanf("%c", &j);
if (j == 'y')
{
continue;
}
else
{
break;
}
}
}
void ck(guan guan[], int* num)
{
while (1)
{
printf("设备名称是:%c\n", guan[(*num)].name);
printf("设备数量是:%d\n", guan[*num].sl);
printf("设备价格是:%lf\n", guan[*num].price);
char c;
printf("是否继续查看设备(y/n):\n");
scanf(" %c\n", &c);
if (c == 'y')
{
continue;
}
else
{
break;
}
}
}
void guanliyuan()
{
int b;
guan guan1[1000];
printf(" 管理员系统 \n");
printf("(1)录入设备\n");
printf("(2)查看已存设备\n");
printf("(3)修改已有设备信息\n");
printf("(4)登记破损设备\n");
printf("(5)注销现存设备\n");
printf("(6)返回\n");
printf("请输入:%d\n");
scanf("%d", &b);
int num = 0;
switch (b)
{
case 1:
lr(guan1, &num);
case 2:
ck(guan1, &num);
case 3:
case 4:
case 5:
case 6:
default:
printf("error\n");
break;
}
}
放在开头第一行看看
再不行,在项目属性里禁止C4996报错