2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 помогите начинающему программисту, валится на fscanf!!!
Сообщение07.05.2013, 20:48 


07/05/13
1
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<locale.h>
#include<windows.h>
#define imya D:\\oaip\\t.txt
struct Tovar
{
char tovar[50];
char firma[50];
char name[50];
int price;
int god_izgotovleniya;
int god_hraneniya;
int kolichestvo;
/*Tovar& operator = (const Tovar &a){
strcpy(tovar, a.tovar);
strcpy(firma, a.firma);
strcpy(name, a.name);
price = a.price;
god_izgotovleniya = a.god_izgotovleniya;
god_hraneniya = a.god_hraneniya;
kolichestvo = a.kolichestvo;
return *this;
}*/
};

void zanos_v_structuru(Tovar *tovar)
{
setlocale(LC_ALL, "Russian_Russia.1251");
int i=0;
FILE *file;
file=fopen("D:\\oaip\\t.txt","r");
Tovar buf;
for(i=0;!feof(file);i++)
{
fscanf(file,"%s",buf.tovar);
strcpy(tovar[i].tovar ,buf.tovar);
fscanf(file,"%s",buf.firma);
strcpy(tovar[i].firma , buf.firma);
fscanf(file,"%s",buf.name);
strcpy(tovar[i].name , buf.name);
fscanf(file,"%d",&buf.price);
tovar[i].price = buf.price;
fscanf(file,"%d",&buf.god_izgotovleniya);
tovar[i].god_izgotovleniya = buf.god_izgotovleniya;
fscanf(file,"%d",&buf.god_hraneniya);
tovar[i].god_hraneniya = buf.god_hraneniya;
fscanf(file,"%d",&buf.kolichestvo);
tovar[i].kolichestvo = buf.kolichestvo;

//tovar[i] = buf;
//strcpy(tovar[i].tovar , buf);
//strcpy(tovar[i].firma , buf);
//strcpy(tovar[i].name , buf);
}
fclose(file);
for( i=0;i<3;i++)
{
printf("\str =%s %s %s %d %d %d %d", tovar[i].tovar,tovar[i].firma,tovar[i].name,tovar[i].price,tovar[i].god_izgotovleniya,tovar[i].god_hraneniya,tovar[i].kolichestvo);
}
}

void main()
{
Tovar *tovar=(Tovar*)calloc(3,sizeof(tovar));
zanos_v_structuru(tovar);
getch();
}

 Профиль  
                  
 
 Re: помогите начинающему программисту, валится на fscanf!!!
Сообщение07.05.2013, 21:17 
Заслуженный участник


04/05/09
4587
А почему вы только feof() проверяете? Могут и другие ошибки произойти, например, если вы забыли какое-нибудь поле. Тогда цикл не закончится, и программа упадёт, когда зайдёт за границы массива.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group