Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Bramme
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 60
#1

Считывание структур из файла - C++

19.05.2013, 21:50. Просмотров 373. Ответов 0
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#define Lmax 20
 
struct student
{
 struct {
    char name[Lmax],surname[Lmax],patronymic[Lmax];
    } fio;
 struct {
     int mark1,mark2,mark3,mark4,mark5; float average;
    } uspev;
 char group[Lmax];
student *next;
};
 
student* queue(char name[]){
   student *tek,*queue=NULL;
   int i; int B[5]={0};
   FILE *f;
   if (!(f=fopen("D:\\Utilities\\QtProj\\Que\\in.txt","r")))
      puts("File not found");
   else
      {
      while(!feof(f))
         { //выделение памяти для новой записи
         tek=(student*)malloc(sizeof(student));
            fgets(tek->fio.name,Lmax,f);
            tek->fio.name[strlen(tek->fio.name)-1]='\0';
            fgets(tek->fio.surname,Lmax,f);
            tek->fio.surname[strlen(tek->fio.surname)-1]='\0';
            fgets(tek->fio.patronymic,Lmax,f);
            tek->fio.patronymic[strlen(tek->fio.patronymic)-1]='\0';
            fgets(tek->group,Lmax,f);
            tek->group[strlen(tek->group)-1]='\0';
            for (i = 0; i < 5; ++i)
                fscanf(f,"%d", &B[i]);
            i=0;
            fgetc(f); // тут для меня не совсем понятно взаимодействие функций scanf и gets
            tek->uspev.mark1=B[0];
            tek->uspev.mark2=B[1];
            tek->uspev.mark3=B[2];
            tek->uspev.mark4=B[3];
            tek->uspev.mark5=B[4];
            tek->uspev.average=(B[0]+B[1]+B[2]+B[3]+B[4])/5;
            tek->next=NULL;
            if (queue!=NULL)
                queue->next=tek; else queue=tek;
         }
      free(tek);
      }
   return(queue);
   }
 
student* viv(student* queue) { //в данной процедуре проверяю правильность считанных данных
    student *tek;
    tek=queue;
    while (tek) {
        printf("%s\n",tek->fio.name);
        tek=tek->next;
}
}
 
int main() {
student *first; //указатель на вершину очереди
char name1[Lmax],name2[Lmax];
printf("Input file name: ");
gets(name1);
printf("Output file name: ");
gets(name2);
first=queue(name1);
viv(first);
return 0;
}
Добрый вечер. В вышеупомянутом коде мне необходимо считать структуры из файла, и составить линейную очередь из этих структур(вид структуры:
Имя
Фамилия
Отчество
Группа
Баллы
Средний Балл.
Средний балл в файле не записывается, высчитывается в самой программе. Каждое поле структуры занимает в файле одну строку, а массив оценок размещается на отдельной строке). Считывание в моей программе проводится некорректно. Данные в файле записаны у меня следующим образом:
Alex
Petrov
Ivanovich
FPM
2 4 5 6 7
Sergei
Ivanov
Petrovich
FEM
1 5 7 2 10

Укажите, пожалуйста, на ошибку.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 21:50     Считывание структур из файла
Посмотрите здесь:

Считывание из файла в массив структур - C++
Доброго времени суток! Есть структура: struct iDiscipline{ char name; int num_course; int num_term; int am_lec; ...

Считывание структур из бинарного файла в динамический массив - C++
Доброго времени суток, форумчане, помогите пожалуйста, поделитесь знаниями или мне глаза откройте.. пишу программу(визуальное приложение)...

Считывание и запись структур в бинарный файл - C++
Здравствуйте, я делаю автоподгрузку и авто сохранение некоторой структуры в бинарный файл. И где-то допустил грубую ошибку, ибо...

Считывание с файла - C++
Прогррамма неверно считывает числа с файла.вот кусок программы int mass_in_3(int *k,int *j) { int array; FILE *f1; ...

Считывание из файла - C++
Ребят, нужно сделать так чтобы программа считывала файл таким образом: первая строка (в ней число) загоняется в переменную, все следующие...

Считывание из файла - C++
bool Poisk_Street() { ifstream fin; std::string street,fail; cout&lt;&lt;endl&lt;&lt;&quot;Введите улицу для поиска:&quot;; cin&gt;&gt;street; ...

Считывание из файла - C++
Всем привет! Есть вот такая проблема: при считывании данных из файла в объект ниоткуда берутся лишние данные. В чем может быть проблема?...

Считывание из файла - C++
Помогите пожалуйста,никак не могу найти,как считать данные из такого файла: Rup 106 12 38 40.2 -51 09 01 300.88...

Считывание из файла - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; #include &lt;vector&gt; using namespace std; void...

Считывание из файла - C++
как считать из файла число, в котором оно будет задаваться в виде ASCII графики где белый цвет обозначен символом &quot;.&quot;, светло-серый - &quot;%&quot;,...

считывание из файла c++ - C++
считываю из файла, но он не читает все строки, почему не знаю. Может кто-нибудь помочь? ifstream file(&quot;1.txt&quot;,ios::in); char...

Считывание из файла - C++
#include &lt;iostream&gt; #include &lt;time&gt; #include &lt;fstream&gt; using namespace std; int linear_search(int array, int size, int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru