vs2022 版本 scanf printf sprintf 等报错

9 篇文章 0 订阅

错误原因:使用上述函数存在安全问题。

因为上面的函数不会对放数据的空间进行检测,可能导致输入的数据空间大于原有的数据空间,出现越界访问,在vs2022以错误显示。故需改正。

改正办法:报错出提示有方法

将上述函数改为 scanf_s ,printf_s ,sprintf_s即可。

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当然可以!以下是一个在Visual Studio 2022使用C语言和EasyX绘制游戏排行榜的示例代码: 首先,确保您已经在Visual Studio成功安装了EasyX图形库。然后,创建一个新的控制台应用程序项目,并将EasyX库添加到项目。 ```c #include <stdio.h> #include <conio.h> #include <easyx.h> #define MAX_PLAYERS 10 typedef struct { char name[20]; int totalTime; } Player; void drawRankings(Player players[], int numPlayers) { initgraph(640, 480); // 初始化图形界面 settextstyle(DEFAULT_FONT, HORIZ_DIR, 2); // 设置字体样式 cleardevice(); // 清屏 // 绘制表头 outtextxy(50, 50, "排名"); outtextxy(200, 50, "姓名"); outtextxy(400, 50, "总时间"); // 绘制排行榜内容 char rankStr[3]; char timeStr[10]; for (int i = 0; i < numPlayers; i++) { sprintf(rankStr, "%d", i + 1); outtextxy(50, 80 + i * 30, rankStr); outtextxy(200, 80 + i * 30, players[i].name); sprintf(timeStr, "%d", players[i].totalTime); outtextxy(400, 80 + i * 30, timeStr); } _getch(); // 等待用户按下任意键后退出 closegraph(); // 关闭图形界面 } int main() { Player players[MAX_PLAYERS] = { {"John", 100}, {"Alice", 200}, {"Bob", 150}, // ... }; int numPlayers = 3; drawRankings(players, numPlayers); return 0; } ``` 这段代码与之前的示例代码基本相同,只是在初始化图形界面时使用了`initgraph`函数,并在绘制完成后使用`_getch`函数等待用户按下任意键后关闭图形界面。 请确保您的项目正确配置了EasyX库,并且已经将EasyX库的头文件和库文件添加到了项目。如果您遇到任何问题,请参考EasyX的官方文档或寻求相关支持。 希望这可以帮助您在Visual Studio 2022成功运行并绘制游戏排行榜!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值