Задать вопрос
gleber1
@gleber1

Что за ошибка l buffersmall?

void read_database (Products**Ps) {
ifstream file;
Products*Inc=new Products;
Product S;
file.open("database.txt",ios::in);
if (!file) {
cout<<rus("База данных не доступна");
return;
}
long file_size;
file.seekg(0, ios::end);
file_size = file.tellg();
if (!file_size) {
cout<<rus("База данных пуста");
return;
}
file.close();
file.open("database.txt",ios::in);
file.read((char *) &S, sizeof(Product));
Inc->P.id=S.id;
strcpy_s(Inc->P.name, S.name);
strcpy_s(Inc->P.value, S.value);
Inc->P.price=S.price;
Inc->P.number=S.number;
strcpy_s(Inc->P.last_date, S.last_date);
Inc->next=NULL;
*Ps=Inc;
while(!file.eof()) {

Inc->next=new Products;
Inc=Inc->next;
Inc->P.id=S.id;
strcpy_s(Inc->P.name, S.name);
strcpy_s(Inc->P.value, S.value);
Inc->P.price=S.price;
Inc->P.number=S.number;
strcpy_s(Inc->P.last_date, S.last_date);
Inc->next=NULL;
}
file.close();
cout<<"-------------------------------"<<endl;
cout<<rus("Список товаров получен из файла")<<endl;
cout<<"-------------------------------"<<endl;
}

>
Все функции рабочие но при счтывании файла кидает
File: f:\dd\vctools\crt_bld\self_x86\crt\ src\tcscpy_s.inl
Line: 30
Expression: (L "Buffer is too small" && 0)
  • Вопрос задан
  • 2940 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
EvgenijDv
@EvgenijDv
C/C++ programmer
У вас где-то слишком маленький буфер. Зайдите под отладкой и посмотрите в каком именно месте вашего кода возникает данная ошибка. Скорее всего это в одном из strcpy_s.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы