Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Koshachek
3 / 3 / 1
Регистрация: 17.02.2012
Сообщений: 107
#1

Чтение/запись структуры - C++

03.06.2014, 16:41. Просмотров 672. Ответов 9
Метки нет (Все метки)

День добрый! Помогите пожалуйста решить задачу: Сформировать текстовый файл, имеющий следующую структуру: фамилия, адрес, марка автомобиля, регистрационный номер, год выпуска. Определить:
-количество автомобилей каждой марки;
-владельца самого старого автомобиля;
-фамилии владельцев и номера автомобилей данной марки.

Я написал код для записи структур в файл, но не знаю как дальше делать: открыть, читать и т.п.
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
 #include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
 
struct Avto
{
    string familiya;
    string adres;
    string marka;
    string reg_namber;
    int god_vipuska;
};
 
int main()
{
    system("chcp 1251 > nul");
    
    string b;
    ofstream file("avto.txt");
    vector<Avto> s;
    Avto vladelec_1, vladelec_2;
 
    vladelec_1.familiya = "Иванов";
    vladelec_1.adres = "Воронеж";
    vladelec_1.marka = "RenoLogan";
    vladelec_1.reg_namber = "р777ву";
    vladelec_1.god_vipuska = 2007;
 
    vladelec_2.familiya = "Петров";
    vladelec_2.adres = "Москва";
    vladelec_2.marka = "RenoMegan";
    vladelec_2.reg_namber = "ж777му";
    vladelec_2.god_vipuska = 2000;
 
    s.push_back(vladelec_1);
    s.push_back(vladelec_2);
 
    for(int i=0;i<s.size();++i)
    file<<s[i].familiya << " " << s[i].adres 
                        << " " << s[i].marka
                        << " " << s[i].reg_namber 
                        << " " << s[i].god_vipuska 
                        << "\n";
    file.close();
 
 
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2014, 16:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение/запись структуры (C++):

Запись структуры и её чтение из файла - C++
пробовал разными способами, ничего не работает, не записывает и не считывает ...

Запись и чтение структуры в/из файла - C++
Столкнулся с очередной проблемой. Есть несколько участков кода: Структура &quot;Абонент&quot;: struct Subscriber { char FIO ; ...

Запись\чтение структуры в\из файл(а) - C++
Никак не пойму как записать структуру в файл, а потом считать ее. Есть структура struct sklad { char nazva; int...

Запись и чтение структуры с файла - C++
Привет всем.Столкнулся с проблема записи структуры в файл и чтения ее из файла.Вот сама структура: struct papa { vector&lt;string&gt; v;...

Запись и чтение структуры из файла - C++
Здравствуйте, у меня дано такое задание: Составить программу &quot;Список студентов группы&quot;, в котором указаны - Фамилия,Имя,пол, место...

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

9
Riddleman
1 / 1 / 4
Регистрация: 03.03.2013
Сообщений: 49
03.06.2014, 19:03 #2
C++
1
2
3
4
5
6
7
8
9
10
11
std::ofstream write;
char *path=new char[n];
strcpy(path,"адрес файла.txt");
write.open(path);// char *path или char path []
 
    for(int i=0;i<s.size();++i)
    {
    write<<s[i].familiya << " " << s[i].adres;
    }
delete []path;
path=NULLL;
Ну, запись делается как-то так. Как один из вариантов. После 39 строчки вставишь. Токо не вставляй так как есть, допили код
0
Koshachek
3 / 3 / 1
Регистрация: 17.02.2012
Сообщений: 107
03.06.2014, 19:09  [ТС] #3
я про чтение имел ввиду, я не знаю как считать записи из файла. а тем более работать с ними(определить владельца и т.п.)
0
Riddleman
1 / 1 / 4
Регистрация: 03.03.2013
Сообщений: 49
03.06.2014, 19:26 #4
C++
1
2
3
4
5
6
7
8
    ifstream fin("cppstudio.txt"); // открыли файл для чтения
 
    fin >> buff; // считали первое слово из файла
    cout << buff << endl; // напечатали это слово
 
    fin.getline(buff, 50); // считали строку из файла
    fin.close(); // закрываем файл
    cout << buff << endl; // напечатали эту строку
Чувак это из первой же ссылки в гугле, чего тут сложного
0
Koshachek
3 / 3 / 1
Регистрация: 17.02.2012
Сообщений: 107
03.06.2014, 20:04  [ТС] #5
Определить:
-количество автомобилей каждой марки;
-владельца самого старого автомобиля;
-фамилии владельцев и номера автомобилей данной марки.
- вот с этим можешь помочь?
Я не знаю как это в файлах реализовать, была б база данных я бы составил sql-запрос, а тут представления не имею че и как
0
Riddleman
1 / 1 / 4
Регистрация: 03.03.2013
Сообщений: 49
03.06.2014, 20:14 #6
Какая структура записи у тебя в файле?
0
Koshachek
3 / 3 / 1
Регистрация: 17.02.2012
Сообщений: 107
03.06.2014, 20:15  [ТС] #7
C++
1
2
3
4
5
6
7
8
struct Avto
{
    string familiya;
    string adres;
    string marka;
    string reg_namber;
    int god_vipuska;
};
0
Riddleman
1 / 1 / 4
Регистрация: 03.03.2013
Сообщений: 49
03.06.2014, 20:15 #8
Как отформатированные данные(текст) у тебя в файле?
0
Koshachek
3 / 3 / 1
Регистрация: 17.02.2012
Сообщений: 107
03.06.2014, 20:18  [ТС] #9
Чтение/запись структуры
0
Riddleman
1 / 1 / 4
Регистрация: 03.03.2013
Сообщений: 49
03.06.2014, 20:58 #10
Значит считываешь всю строку ищешь в ней пробел

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
FILE *Read;
Read=fopen (path,"r");
char *temp_read_buffer,*t;
 
temp_read_buffer=new char[100];
    std::string strichka, strichka2;
        int r;
    while(!feof(Read) && r<s.size())
    {
        strichka.clear();
        while(fgets(temp_read_buffer,99,Read)!=0)
        {
            strichka=strichka+temp_read_buffer;
            if(strchr(temp_read_buffer,'\n')!=NULL)
            {
                break;
            }
        }
             
        for(c=0;c<5;c++)
        {
            int i;
            i=strichka.find(" ");
            if(i!=std::string::npos) //==============нема хуйні в цьому рядку :)
            {
                        
                               strichka2.assign(strichka,0,i);
                //если c=0 слово до первого пробела, c=1 до второла пробела
                switch(c)
                {
                    case 0: s[i].adres ; break;
                    case 1: s[i].marka; break;
                    case 2: s[i].reg_namber;break;
                    case 3: s[i].reg_namber; break;
                    case 4: s[i].god_vipuska;break;
                }
                        
                strichka2.assign(strichka,i+1,strichka.size());
                strichka=strichka2;
            }
        }
        //fgets(temp_read_buffer,kilkist,Read);
        r++;
    }
Скорей всего здесь могут быть ошыбки. Допилиш код.

Добавлено через 9 минут
Когда считаешь данные, тогда уж и подсчитаешь чего и сколько
0
03.06.2014, 20:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2014, 20:58
Привет! Вот еще темы с ответами:

Чтение структуры из файла и запись нового - C++
Из файла вводятся записи структурой имя - стринг, ТК - место работы тоже структура из AS - место (стринг), Tel - телефон с клавиатуры...

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

Запись/чтение структуры через fstream - C++
Доброго времени суток! у меня есть несколько вопросов по поводу файловых потоков. 1. Как можно записать/прочитать массив структур в...

Бинарные запись и чтение структуры в файл - C++
Записываю структуру в файл.. нужно прочитать.. но он не читает... если delete n; убрать, то &quot;Нарушение прав доступа при записи&quot;. delete n...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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