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

Форматированное чтение из файла в массив структур - C++

Восстановить пароль Регистрация
 
undestroyer
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 53
30.05.2013, 18:16     Форматированное чтение из файла в массив структур #1
Здравствуйте, посоветуйте как лучше сделать чтение из файла в массив структур с разными типами данных.
Входной файл (все денные введены через знак табуляции):
toyota 130 250 1500 sedan 2200 1800
audi 220 250 1500 hetch 2000 2500
bmv m3 250 320 1700 sedan 2800 3200
ferrari 450 375 1200 coupe 3500 8500
Каждую строчку надо внести в массив структур:
C++
1
2
3
4
5
6
7
8
9
10
struct car
{
    char name[10];//имя
    int hp;//мощность
    int speed;//макс скорость
    int massa;//масса
    char kuzov[10];//тип кузова
    int roc; //рабочий объем цилиндра
    int price;//цена
};
как лучше считать все строки и занести соответствующие данные в массив структур? для file.getline нужно чтоб в структурах были только символьные переменные, в fscanf я не знаю как указывать размер для символьных переменных (они разные). Что посоветуете?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2013, 18:16     Форматированное чтение из файла в массив структур
Посмотрите здесь:

Считывание из файла в массив структур C++
C++ Форматированное чтение из файла
C++ Чтение из текстового файла массив структур
C++ Чтение структур из файла
C++ Массив структур из файла
C++ Чтение массива структур из бинарного файла
Чтение вектора структур из файла C++
Чтение из файла в массив структур (ошибка со string) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ksandro
31 / 31 / 1
Регистрация: 15.04.2011
Сообщений: 81
30.05.2013, 19:48     Форматированное чтение из файла в массив структур #2
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
#include <fstream>
#include <iostream>
 
struct car
{
    char name[10];//имя
    int hp;//мощность
    int speed;//макс скорость
    int massa;//масса
    char kuzov[10];//тип кузова
    int roc; //рабочий объем цилиндра
    int price;//цена
};
 
int main()
{
        std::ifstream f("file.txt");
        int size = 0;
        car cars[100];
        for(int i = 0;  i < sizeof(cars); ++i)
        {
                f >> cars[i].name;
                if(f.eof())
                {
                        size = i;
                        break;
                }
                f >> cars[i].hp >> cars[i].speed >> cars[i].massa >> cars[i].kuzov >> cars[i].roc >> cars[i].price;
        }
 
        for(int i =0; i < size; ++i)
        {
                std::cout << cars[i].name << " "
                          << cars[i].hp << " "
                          << cars[i].speed << " "
                          << cars[i].massa << " "
                          << cars[i].kuzov << " "
                          << cars[i].roc << " "
                          << cars[i].price << "\n";
        }
}
Вот примерно так можно. Вроде работает, только "bmv m3" воспринимается как 2 поля, если заменить на "bmv_m3" то все ок.
Yandex
Объявления
30.05.2013, 19:48     Форматированное чтение из файла в массив структур
Ответ Создать тему
Опции темы

Текущее время: 08:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru