C4473 结构分配警告

2023-12-09

我目前正在做一项作业,很好奇编译时出现的警告是什么以及如何补救。它会构建,但当我调试时,它会出现错误屏幕。下面是出现的警告。

1>c:\用户\cesteves\documents\c 编程\库存\库存\inventory.cpp(48):警告C4473: “scanf_s”:没有为格式字符串传递足够的参数

注意:占位符及其参数需要 2 个可变参数, 但提供了 1 个

注意:格式字符串需要缺少的可变参数 2 “%s”注意:该参数用作缓冲区大小

#include "stdafx.h"
#include <stdio.h>

void main()
{
    struct date {
        int day;
        int month;
        int year;
    };

    struct details {
        char name[20];
        int price;
        int code;
        int qty;
        struct date mfg;
    };

    struct details item[50];
    int n, i;

    printf("Enter number of items:");
    scanf_s("%d", &n);

    for (i = 0; i < n; i++) {
        printf("Item name: \n");
        scanf_s("%s", item[i].name);
        printf("Item code: \n");
        scanf_s("%d", &item[i].code);
        printf("Quantity: \n");
        scanf_s("%d", &item[i].qty);
        printf("price: \n");
        scanf_s("%d", &item[i].price);
        printf("Manufacturing date(dd-mm-yyyy): \n");
        scanf_s("%d-%d-%d", &item[i].mfg.day, &item[i].mfg.month, &item[i].mfg.year);    
    }

    printf("             *****  INVENTORY ***** \n");
    printf("----------------------------------------------------------------- - \n");
    printf("S.N.|    NAME           |   CODE   |  QUANTITY |  PRICE| MFG.DATE \n");
    printf("----------------------------------------------------------------- - \n");

    for (i = 0; i < n; i++)
        printf("%d     %-15s        %-d          %-5d     %-5d%d / %d / %d \n", i + 1, item[i].name, item[i].code, item[i].qty,item[i].price, item[i].mfg.day, item[i].mfg.month,item[i].mfg.year);
    printf("----------------------------------------------------------------- - \n");
}

您应该提供缓冲区的大小。例如,如果你只读取一个字符,它应该是这样的:

char c;
scanf_s("%c", &c, 1);

请阅读ref!

Also, structs很高兴放在前面main()。我总有我的example请记住,关于基本用法structs.

main 的原型应该是int main(void)在你的情况下。检查一下:C 中 int main() 与 void main()


在您的代码中,更改以下内容:

scanf_s("%s", item[i].name);

to this:

scanf_s("%s", item[i].name, 20);

因为这:

struct details {
  char name[20];
  ..  

对其余的人做同样的事情..

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

C4473 结构分配警告 的相关文章

随机推荐

  • 自定义子域上的 Rails 命名空间管理

    我的 Rails 应用程序设置为使用子域 如 RailsCast 中所述 http railscasts com episodes 221 subdomains in rails 3 现在 我想在我的博客子域的前面添加一个管理子域 如下所示
  • 访问数组作业的任务 ID

    我通常使用类似以下内容来提交数组作业 bin bash sbatch lt
  • MongoDB SSL 副本设置问题 - 证书不受支持

    尝试在 Ubuntu 18 04 mongo 版本 4 0 18 上设置 3 节点 mongodb 服务器副本 gl1 192 168 1 30 gl2 192 168 1 31 gl3 192 168 1 33 使用同一网络上的内部 CA
  • 在 winform 应用程序中打开带有表单名称的表单

    我想问一下在winform c 中如何使用帮助或类名打开表单 我有三种不同的形式 用户管理 团体管理 位置管理 我从数据库获得了这三种形式的许可 在菜单中单击我用表单名称填充标签属性 如下所示 tsmMain Tag item Permis
  • Android 10 中取消了前台服务

    在Android 10中 一些制造商在电池优化设置中提供了新功能 见图 当屏幕关闭一段时间后 我的前台服务被操作系统杀死 我已经使用了带通知的前台服务 当所有设备的屏幕都打开时 此代码可以正常工作 我在 OnePlus 和 realMe 设
  • 从 VCS 克隆后的 Pycharm 项目错误:解释器中“无内容可显示”

    我有一个项目 我为其设置了一个pipenv环境为Python 3 7 它工作得很好 直到我cloned来自 VCS 中的 master 我之前已经为同一个项目做过很多次了 但我的最后一个克隆搞砸了一些事情 我的所有项目文件似乎都在项目之外
  • Cocoa 中是否有一些功能可以用自然语言显示时间间隔?

    我正在寻找的是一个可以用自然语言显示时间间隔的 Cocoa 或第三方 类 例如 10 秒前 1小时前 2天前 你知道有什么可以帮助我完成这项任务 而无需自己编写并陷入 if else 地狱吗 我最初指出的那个似乎不再存在了 但正如所指出的那
  • 根据另一列更改一列的值(对于某些行)

    我有一个数据框 df ID lt c 1 2 3 4 5 category lt c Shirts Shirts Shirts Sweaters Sweaters subcategory lt c V Neck V Neck Round S
  • 在 PHP 中将数据库结果回显为 html 代码的最佳方法是什么?

    当我在数据库中有这样的值时 foo 我怎样才能在不与html代码冲突的情况下回显它 notice
  • cv2.VideoWriter 的输出不正确。速度更快了

    我正在尝试使用 opencv 的 cv2 VideoWriter 录制一段视频一段时间 问题是输出不正确 例如 10秒的视频只有2秒 并且播放速度更快 这是我的代码 欢迎任何建议或想法 另外 另一个问题是输出视频没有声音 谢谢 主机 树莓派
  • 从密码生成密钥对

    我想使用基于密码的私钥的非对称加密 要求是提供的安全级别必须与 1 使用基于密码的对称加密 2 以 常规 方式使用非对称加密相同 我将不得不在 Java 中使用它 但答案可以是通用的 我知道我可以生成密钥对并使用基于密码的对称密钥加密私钥
  • 是否有 .NET StringBuilder 功能版本的开源(非 GPL)实现?

    我正在寻找 StringBuilder 或等效项的功能 如非命令式 实现 我见过一些函数式数组的实现 但它们本身不支持插入 开源 非 L A GPL 的奖励 F 的奖励 但如果需要 我可以从 Haskell OCaml SML 进行翻译 欢
  • 经典 ASP - 将属性作为 byref 传递

    在经典 ASP 中 我有一个对象 称之为bob 那么它有一个名为name with let and get方法 我有一个函数如下 sub append byref a b a a b end sub 这只是为了更快地向变量添加文本 我也有同
  • 在 Android 中录制声音并读取振幅

    我正在尝试制作一个应用程序 记录声音一秒钟 然后从记录的声音中读取最大幅度 这是我到目前为止所拥有的 但我的应用程序崩溃了 我不明白为什么 这是我的第二个活动 我在按下 记录 按钮后从第一个活动中调用该活动 该应用程序在我的模拟器和手机上崩
  • 如何让 jquery-ui 自动完成退出 iframe?

    是否可以使自动完成 jQueryUI 的建议从一个 iframe 中出来 具有与 select 元素相同的行为 我举一个例子 http jsbin com ehidef 1 事实上 这是可以做到的 尽管一些样式是强制性的 jQueryUI
  • Autoconf 路径中存在空格

    我刚刚将一个 C 项目转换为一个 autotools 项目 并在 configure ac 中编写了几行here 当我的路径应该是 bla bla 时 构建失败并显示 sh home me bla 没有这样的文件或目录 问题是我没有在任何地
  • NSArray 对 ARC 下对象的弱引用 (__unsafe_unretained)

    我需要在 NSArray 中存储对对象的弱引用 以防止保留循环 我不确定要使用的正确语法 这是正确的方法吗 Foo foo1 Foo alloc init Foo foo2 Foo alloc init unsafe unretained
  • WPF 和 CefSharp:性能低下

    我已经成功地用 c winforms 制作了一个个人迷你浏览器应用程序 因为我想要一些更奇特的效果 所以我正在考虑制作一个 WPF 应用程序 因此 我尝试了 wiki 教程并使用浏览器设置了一个简单的 WPF 表单 但注意到它的性能很慢 当
  • C#,如何访问当前线程中在其他线程中创建的内容?

    我正在用 C 编写聊天客户端 服务器应用程序 但我遇到了线程问题 我写了这个简单的代码来显示我的问题 我使用 thread 1 来显示 Form 但它只显示了一秒钟 也许 thread 1 终止并关闭了 Form 但我 IsAlive 说它
  • C4473 结构分配警告

    我目前正在做一项作业 很好奇编译时出现的警告是什么以及如何补救 它会构建 但当我调试时 它会出现错误屏幕 下面是出现的警告 1 gt c 用户 cesteves documents c 编程 库存 库存 inventory cpp 48 警