[C6064]警告以及解决方法

2023-11-06

对于函数scanf_s();

当出现C6064这个警告的时候,预示着缺少一个整形参量,该参量的功能是表明输入字符的长度(可以使用sizeof,strlen 等函数);

例子如下:

scanf_s("%s", book.title,sizeof(book.title));


完整源代码如下:

(结构体传参的测试)

#include<stdio.h>



struct Date

{

int year;

int month;

int day;

};

struct Book

{

char title[128];

char auther[40];

float price;

struct Date date;

char publisher[40];

};



struct Book GetInput(struct Book book)

{

printf_s("请输入书名:");

scanf_s("%s", book.title,sizeof(book.title));

printf_s("请输入作者:");

scanf_s("%s", book.auther,sizeof(book.auther));

printf_s("请输入售价:");

scanf_s("%f", &book.price);

printf_s("请输入出版日期:");

scanf_s("%d-%d-%d", &book.date.year, &book.date.month, &book.date.day);

printf_s("请输入出版社:");

scanf_s("%s", book.publisher,sizeof(book.publisher));



return book;

}



void printBook(struct Book book)

{

printf_s("书名 :%s \n", book.title);

printf_s("作者 :%s \n", book.auther);

printf_s("售价 :%f \n", book.price);

printf_s("出版日期 :%d-%d-%d\n", book.date.year, book.date.month,book.date.day);

printf_s("出版社 :%s\n", book.publisher);

}



int main()

{

struct Book b1={0}, b2={0};

printf_s("请输入第一本书的信息...");

putchar('\n');

b1 = GetInput(b1);

printf_s("请输入第二本书的信息...");

b2 = GetInput(b2);

printf_s("录入完毕,现在输出:\n");

printf_s("第一本书的信息:\n");

printBook(b1);

printf_s("第二本书的信息:\n");

printBook(b2);

return 0;

}

输入使用 scanf() ,是不安全的,因为他在读取字符串的时候不会检查边界,可能会造成内存泄露,在 Visual Studio 中编译会报错,推荐使用 scanf_s() 。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[C6064]警告以及解决方法 的相关文章

随机推荐

  • 配置环境变量后,mysql依旧提示“'mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件”

    在启动菜单搜索 cmd 搜索到后不要点击运行 右击选择以管理员的身份运行 之后输入mysql u 用户名 p 密码 就可以了 在此输入 cmd 找到 命令提示符 右击选择 以管理员的身份运行 之后正常操作就可以了 ps 此外如果之前操作没问
  • Docker安装使用记录

    Docker使用 Docker简介 Docker 架构 Docker安装 Docker CE 镜像源站 使用官方安装脚本自动安装 仅适用于公网环境 手动安装帮助 阿里云ECS可以通过内网安装 见注释部分内容 Ubuntu 14 04 16
  • Linux笔记:命令进阶使用相关功能

    文章目录 目的 通配符 转义符 流程控制 管道符 重定向 环境变量 总结 目的 使用linux时用户可以通过一个又一个的命令来完成各种操作 除了基础的各个命令外linux还提供了各种便利的功能来协调使用这些命令 这些功能让用户在使用linu
  • jenkins 持续集成/项目部署

    前置操作可查阅 docker 安装 jenkins https xijia blog csdn net article details 127021367 spm 1001 2014 3001 5502 win安装及 jenkins 前置配
  • C5.0决策树算法及性能提升

    C5 0算法是基于C4 5开发的新版本 它能适用于很多类型的问题 同神经网络 支持向量机等复杂算法相比 它几乎可以表现地一样优秀 并且更容易理解和部署 这里我们将用UCI机器学习网站http archive ics uci edu ml i
  • GPIO使用教程(学习笔记)

    目录 前言 一 GPIO简介 1 1GPIO框图讲解 二 需驱动的寄存器 2 1时钟 2 2总线 2 3时钟配置 2 4寄存器配置 三 编程环境搭建 3 1完整程序 四 小结 前言 本文主要讲解如何驱动GPIO外设的相应寄存器搭建GPIO的
  • MyBatis 学习笔记:Java 中的数据持久化框架

    MyBatis 学习笔记 Java 中的数据持久化框架 数据持久化是大多数应用程序的关键需求之一 在 Java 开发中 MyBatis 是一个流行的数据持久化框架 它提供了一种简单而强大的方式来管理数据库访问 本文将介绍 MyBatis 的
  • 出门旅行懂链改这些问题都好解决

    每到旅游热潮结束后 各大平台都会纷纷晒出出游 成绩单 国内很多人都是 报复式出游 各大景区都是人山人海 有些人旅游是为了修身养性 放松身心 有些人是为了观赏大自然风光 享受一场视觉盛宴 有些人是为了探索未知事物 追求一种差异化 个性化的旅游
  • 环形队列设计思路

    环形队列设计思路 一 数据结构 数据存储在一段连续的内存空间 通过写位置 读位置来控制数据的输入输出 二 数据操作 1 判断空逻辑 写位置 读位置 2 判断满逻辑 写位置 1 MAX SIZE 读位置 3 写数据逻辑 判断数据不满 在当前写
  • GPG error: http://debian.cn99.com testing Release: Unknown error executing gpgv

    mail apt get updateGet 1 http debian cn99 com testing Release gpg 189B Hit http debian cn99 com testing ReleaseErr http
  • Servlet上传文件

    一 核心方法 1 HttpServletRequest类相关方法 方法 描述 Part getPart String name 获取请求中给定name的文件 Collection
  • java爬虫,提供链接直接爬取网页代码

    其实我只想要爬到整个网页的源代码的就好 通过java的一个包jsoup 就可以直接爬取了 后面有下载源代码 含jsoup包 的链接 输入 网页链接 输出 网页源代码 代码比较简单 解析都在代码中 import org jsoup Jsoup
  • python中lower函数是什么意思_python中lower函数实现方法及用法讲解

    之前小编介绍过python中将字符串小写字符转为大写的upper函数的使用方法 upper函数 有将小写转为大写的需要 那也有将大写转为小写的情况 本文主要介绍在python中可以将字符串大写自摸转换为小写字母的lower函数 1 lowe
  • CreateThread()和_beginthread()有什么不同?

    CreateThread 和 beginthread 有什么不同 我们知道在Windows下创建一个线程的方法有两种 一种就是调用Windows API CreateThread 来创建线程 另外一种就是调用MSVC CRT的函数 begi
  • Chart控件的用法和部署

    最近 导师让我做统计图 因为以前没有接触过 所以动起手来 难免会遇到很多的问题 经过一段时间的搜集资料和亲手操作 终于实现了我需要的功能 为了方便大家以后会更好的使用Chart控件和节省大家的时间 因此和大家分享一下我做的过程 首先 需要安
  • 时序数据的内存服务

    说明 既要坚定锻炼成熟架构的道路 也要在合理的范围内重塑设计 计算时序数据的特征 少不了 Rolling 类的操作 过去 直接采用pandas进行rolling 效率很不错 但是在实战应用时不太行 反思下来 离线的操作拓展困难 很多都是一次
  • set常用方法及遍历方式

    set常用方法 Set 接口继承 Collection 接口 而且它不允许集合中存在重复项 所有原始方法都是现成的 没有引入新方法 具体的 Set 实现类依赖添加的对象的 equals 方法来检查等同性 public int size 返回
  • Qt之QGraphicsView进阶篇

    前言 上一章节介绍了 QGraphicsView 中的基础内容 具体请参考 Qt之QGraphicsView入门篇 这一章节我们来具体了解一下 GraphicsView 框架中有哪些特性 缩放与旋转 QGraphicsView 通过 QGr
  • 查看windows mstsc远程登陆日志(client ip)

    最近有个需求 要看一下windows MSTSC的登陆日志 测试环境 win10 参考 https social technet microsoft com Forums windows en US efabde54 be5e 4be2 b
  • [C6064]警告以及解决方法

    对于函数scanf s 当出现C6064这个警告的时候 预示着缺少一个整形参量 该参量的功能是表明输入字符的长度 可以使用sizeof strlen 等函数 例子如下 scanf s s book title sizeof book tit