我有一个结构数组:
struct schoolboy
{
public:
char firstName[30];
char secondName[30];
char addres[50];
int schoolNumber;
int schoolclass;
schoolboy input(schoolboy *base);
schoolboy recording(schoolboy *base, schoolboy *record, int number);
};
这是实现:
int main(){
int number;
setlocale(LC_ALL, "Rus");
cout << "Введите число " << endl;
cin >> number;
schoolboy base[28], record[28], a;
a.input(base);
a.recording(base, record, number);
recordOut(record);
system("pause");
return 0;
}
但是有问题的功能,问题恰恰在于strcpy:
schoolboy schoolboy::recording(schoolboy *base, schoolboy *record, int
number)
{
if (base->schoolNumber == number)
{
if (base->schoolclass==10 || base->schoolclass==11)
{
cout << "1" << endl;
for (int i = 0; i < 2; i++)
{
strcpy(record[i].firstName, base[i].firstName); //тут ошибка
strcpy(record[i].secondName , base[i].secondName);
strcpy(record[i].addres, base[i].addres);
}
}
else
{
cout << "Haven't 10 or 11 class" << endl;
return *base;
}
}
else
{
cout << "Not found" << endl;
return *base;
}
return *record;
如何修复错误?您能否就结构的“主要”f-th 中的实施提供建议。
错误:
error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
将所有 strcpy 替换为 strcpy_s。
如果不想处理工作室的烦恼,还有另一种方法。在项目设置中,将其指定为预定义的宏:
或者,您可以将其添加到文件的开头。