Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2012, 20:58   #1
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию Чтение из файла и запись в структуру.

Всем доброго времени суток!
Надо считать данные с файла (строчки с Фамилией Именем и оценками учеников) и считанное занести в массив структуры pupil. Чтобы в дальнейшем работать со считанными данными.

Вопрос как занести в массив структур?

Код:
int main()
{

        struct pupil{
                char f[20];
                char n[20];
                int mat;
                int fiz;
                int inf;

        };

        int i, j;
        char temp[100];
        char *t;

        pupil mas[10];

        ifstream ind("input_data.txt");

        while(!ind.eof()){

                ind.getline(temp, 100);
                cout<<"schitano - "<<temp<<endl;

                i=0;
                t=strtok(temp, " ");
                while(t!=NULL ){
                        cout<<"t - "<<t<<endl;
                        
                        strcpy(mas[i].f,t);
                        t=strtok(NULL, " ");
                }

        }


        ind.close();

        getch();
        return 0;
}
Спеши медленно.
asmars вне форума Ответить с цитированием
Старый 05.04.2012, 21:28   #2
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

вот как придумал.. но это как-то совсем по ламерски, думаю есть способ по лучше!

Код:
int main()
{

        struct pupil{
                char f[20];
                char n[20];
                int mat;
                int fiz;
                int inf;

        };

        int i=0, j, c;
        char temp[100];
        char *t;

        pupil mas[10];

        ifstream ind("input_data.txt");

        c=0;
        while(!ind.eof()){

                ind.getline(temp, 100);
                cout<<"schitano - "<<temp<<endl;

                i=0;
                t=strtok(temp, " ");
                while(t!=NULL ){
                        cout<<"t - "<<t<<endl;

                        if(i==0){strcpy(mas[c].f,t);}
                        if(i==1){strcpy(mas[c].n,t);}
                        if(i==2){mas[c].mat=atoi(t);}
                        if(i==3){mas[c].fiz=atoi(t);}
                        if(i==4){mas[c].inf=atoi(t);}

                        t=strtok(NULL, " ");
                        i++;
                }
                c++;

        }


        ind.close();

        getch();
        return 0;
}
Спеши медленно.
asmars вне форума Ответить с цитированием
Старый 06.04.2012, 18:16   #3
zorra123
Пользователь
 
Регистрация: 23.11.2010
Сообщений: 23
По умолчанию

смотри, у меня примерно такое же задание вот как я с помощью некоторых людей отсюда сделал:


Код:
struct kn 
	{
	char login[100];
	int tel[100];
	int id[11] ;
	char pas[100];
	};
int _tmain(int argc, _TCHAR* argv[])
{	static struct kn ad[100];
char q1[100],q2[100],w2,e3, po;
	int n =0,r=0,s=0,h; 
	FILE* as;
	as = fopen("F:\книжка.txt", "r");
	if(as == NULL)
	{	
		printf("Can't create file");
		getchar();
		return 1;
	}
	while((q1[n]=fgetc(as)) != EOF)
	{
		fscanf(as,"%s%s%s%s",ad[n].login, ad[n].tel, &ad[n].pas, &ad[n].id);
		n++;
	}
zorra123 вне форума Ответить с цитированием
Старый 06.04.2012, 19:04   #4
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

спасибо за ответ, но мне нужно это делать с помощью стандартных потоков.
хотя, надо попробовать такое, только со стандартными iostream fstream.
Вы натолкнули меня на мысль)

а вот мой способ реализации..
Код:

        struct pupil{
                char f[20];
                char n[20];
                int mat;
                int fiz;
                int inf;
        };

        ifstream ind("input_data.txt");

        c=0;
        while(!ind.eof()){
                ind.getline(temp, 100);

                i=0;
                t=strtok(temp, " ");
                while(t!=NULL ){

                        if(i==0){strcpy(mas[c].f,t);}
                        if(i==1){strcpy(mas[c].n,t);}
                        if(i==2){mas[c].mat=atoi(t);}
                        if(i==3){mas[c].fiz=atoi(t);}
                        if(i==4){mas[c].inf=atoi(t);}

                        t=strtok(NULL, " ");
                        i++;
                }
                c++;
        }
Спеши медленно.
asmars вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чтение и запись файла VaskaKostolom Паскаль, Turbo Pascal, PascalABC.NET 5 13.09.2011 20:59
чтение из текстового файла в структуру TRAIN и вывод информации по запросу (Паскаль) Arabic_Coffee Помощь студентам 0 14.05.2011 21:11
Чтение с файла в структуру trance-boy Общие вопросы C/C++ 6 08.11.2010 00:11
Запись/чтение из файла (С++) alexov Общие вопросы C/C++ 15 18.01.2009 17:35