为了账号安全,请及时绑定邮箱和手机立即绑定

如果加_s会提示错误 1 error C2660: “fopen_s”: 函数不接受 2 个参数?

如果加_s会提示错误 1 error C2660: “fopen_s”: 函数不接受 2 个参数?

C++
繁星点点滴滴 2022-12-14 22:17:08
这是源程序:// 1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>#define SAFE_DELETE_ARRAY(p) { if (p) {delete []p; p=NULL;}}#define ROLE_COUNT 5#define NAME_LEN 20using std::cin;using std::cout;using std::endl;typedef struct _ROLE{int HP;int level;char name[NAME_LEN +1];}ROLE,*LPROLE;int _tmain(int argc,_TCHAR* argv[]){LPROLE role=NULL;role=new ROLE[ROLE_COUNT];memset(role,0,sizeof(ROLE)*ROLE_COUNT);FILE*file=NULL;if((file=fopen("role.txt","r+"))==NULL){cout<<"角色文件没有找到,角色加载失败!请重新创建角色。"<<endl;}else{for(int i=0;i<ROLE_COUNT;i++)fscanf(file,"%d%d%s",&role[i].HP,&role[i].level,role[i].name);fclose(file);}printf("HP\t等级\t昵称\n");for(int i=0;i<ROLE_COUNT;i++)printf("%d\t%d\t%s\n",role[i].HP,role[i].level,role[i].name);for(int i=0;i<ROLE_COUNT;i++){cout<<"输入第"<<i+1<<"个角色的HP:"<<endl;cin>>role[i].HP;cout<<"输入第"<<i+1<<"个角色的等级:"<<endl;cin>>role[i].level;cout<<"输入第"<<i+1<<"个角色的名字:"<<endl;cin>>role[i].name;}for(int i=0;i<ROLE_COUNT;i++)printf("%d\t%d\t%s\n",role[i].HP,role[i].level,role[i].name);if ((file=fopen("role. txt","w+"))==NULL){cout<<"角色文件保存失败!"<<endl;}else{for (int i=0;i<ROLE_COUNT;i++)fprintf(file,"%d\t%d\t%s\n",role[i].HP,role[i].level,role[i].name);fclose(file);}SAFE_DELETE_ARRAY(role);return 0;}运行时出现3个警告(说下 这不是警告级别的问题哦。)还有就是:1,cpptest.cpp(27) : warning C4996: “fopen”被声明为否决的。2,cpptest.cpp(35) : warning C4996: “fscanf”被声明为否决的。3,cpptest.cpp(55) : warning C4996: “fopen”被声明为否决的。结果为:角色文件没有找到,角色加载失败!请重新创建角色HP 等级 level0 0 0 持续五行0,在出现请输入第一个角色的HP:
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

被声明为否决的 是说编译器认为这个函数是不安全的,你可以不用改.
或者用 加后缀_s 的函数

查看完整回答
反对 回复 2022-12-18
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

警告不是错误,不用管它!

查看完整回答
反对 回复 2022-12-18
  • 2 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号