В настоящее время я работаю над заданием, и мне было любопытно, что это предупреждение при компиляции и как его исправить. Он будет построен, но когда я отлажу, он получит экран с ошибкой. Ниже приведено предупреждение.C4473 предупреждение о назначении структуры
1> C: \ Users \ cesteves \ документы \ с программирования \ инвентаризации \ инвентаризации \ inventory.cpp (48): предупреждение C4473: 'scanf_s': не достаточно аргументов передается строка формата
примечание: заполнители и их параметры ожидают 2 VARIADIC аргументы, но 1 были предоставлены
примечание: отсутствует VARIADIC аргумент 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");
}
'scanf_s' является безопасным scanf. Требуется размер буфера. 'scanf_s ("% s ", item [i] .name, 20); ' –
Да что он сделал – Chris