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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ компилятор ругается на структуру http://www.cyberforum.ru/cpp-beginners/thread157797.html
попалась вот такая вот структура для графа, но компилятору она не нравится.... template <class V, class E> struct graph { struct v_info; struct e_info; struct v_info {
C++ Непонятная ошибка сегментации В программе используется дерево, элементы которого описываются и создаются таким образом: struct Node { Node* children; int num; vector <pair <string, unsigned int> > words; }; Node* create_node() http://www.cyberforum.ru/cpp-beginners/thread157793.html
Возврат указателя на массив из функции C++
Здравствуйте. Пытаюсь вернуть указатель на массив из функции. #include <iostream> using namespace std; int* ReturnArray() {
Создание класса, представляющего многочлен C++
Доброго времени суток, Профессионалы! Имеется задание: Создать класс Polynom ( многочлен ) с операциями +, +=, -, -=, =, ==, !=, >, <, >=, <=, *, *= Для выполнения операций >, <, >=, <=, надо подставить некоторое число вместо X? И , что делать с ==, != ?
C++ Вывод кавычек при использовании printf http://www.cyberforum.ru/cpp-beginners/thread157712.html
как с помощью printf напечатать строку в которой неоднократно содержаться двойные кавычки ?
C++ Шифратор пароля. Покритикуйте пожалуйста. Это моя первая программка на С++, если кому не лень, натычте меня носом в ляпы. Чтобы не топтаться по граблям. :) #include <iostream> #include <string> #include <ctime> #include <fstream> using namespace std; подробнее

Показать сообщение отдельно
НикиЧ
0 / 0 / 0
Регистрация: 05.08.2010
Сообщений: 12

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

06.08.2010, 15:05. Просмотров 1895. Ответов 27
Метки (Все метки)

Всем доброго времени суток. При выполнении задания, у меня возникла такая проблема:
Имеется класс, одно из полей - вектор стуктур. Также дан текстовой файл, в каждой строке которого должен быть записа объект данного класса, т.е тип строчки в файле имеет вид: char ...[] char...[] char ....[] vector<char ...[] int> (количество элементов вектора неизвестно (каждый раз разное)). Проблема в том, что я не знаю как считывать разное количество структур.
Вот тут мои наработки:

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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <string.h>
#include <vector>
 
using namespace std;
 
struct prod
{
    char npr[256];
    int cpr;
};
 
class sklad
{
public:
    char nomer[256];
    char name[256];
    char pers[256];
    vector<prod> pr;
 
    sklad *next;
};
 
typedef sklad* Psklad;       
 
Psklad datebase;              
//------------------------ФУНКЦИЯ ПЕЧАТИ МЕНЮ-----------------------------------
int printMenu()
{
    cout << "Выберите действие:" << endl <<
        "1: ....................." << endl <<
        "2: ......................." << endl <<
        "3: ......................." << endl <<
        "4: .............................." << endl <<
        "5: Выход" << endl;
    
    bool truth = false;
    int action;
    while(!truth)
    {   
        cout << "Ваш выбор: ";
        cin >> action;
        if((action >= 1) && (action <= 5))
            truth = true;
        else
        {
            cout << "Нет такого действия" << endl;
            return 1;
        }
    }
 
    return action;
}
 
 
//----------------------ДОБАВЛЕНИЕ НОВОЙ ЗАПИСИ-----------------------------------------------
void addSklad(Psklad newSklad)
{
    newSklad->next = NULL;
 
    if(!datebase)
    {
        datebase = newSkladr;
    }else
    {
        Psklad pointer = datebase;
        while(pointer->next != NULL)
            pointer = pointer->next;
 
        pointer->next = newSklad;
    }
}
 
 
//------------------------------------ЧТЕНИЕ ФАЙЛА -----------------------------------------------
void readDatebase()
{   int i=0;
    FILE *fdatebase = fopen("datebase.txt", "r");
    if(!fdatebase)
    {
        cout << "Нет базы данных" << endl;
        Sleep(5000);
        exit(0);
    }
 
    while(!feof(fdatebase))
    {
        Psklad tempRec = new sklad;
        fscanf(fdatebase, "%s ", &tempRec->nomer);
        fscanf(fdatebase, "%s ", &tempRec->name);
        fscanf(fdatebase, "%s ", &tempRec->pers);
        ????????????????????????????????????????????????????????????????????????????????
            fscanf(fdatebase, "%s ", &tempRec->pr[i].npr);
            fscanf(fdatebase, "%d ", &tempRec->pr[i].cpr);
        ????????????????????????????????????????????????????????????????????????????????
        
            
        addSklad(tempRec);
    }
 
    fclose(fdatebase);
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru