anonymous@RULINUX.NET~# Last login: 2022-12-02 16:11:06
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

[C++] Чтение массива структур из файла

В текстовый файл записан массив структур:

  1.  2543;Москва;12.05.2009;Иванов И. И.;
  2.  1012;Киев;12.11.2009;Петров П. П.;
  3.  8632;Минск;12.01.2010;Сидоров С. С.;
  4.  ...
  5.  

Необходимо его прочитать и вывести на экран.

Вот мое поделие:

c
#include <stdio.h>

int main() {
    typedef struct {
        int number;
        char* city;
        char* date;
        char* name;
    } request;

    FILE* flist = fopen("requests.txt", "r");
    if (!flist) {
        printf("Can'n open file.\n");
    } else {
        int n;

        printf("Enter count of lines: "); scanf("%i", &n);
        request* list = new request[n];

        for (int i = 0; i < n; i++) {
            fscanf(flist, "%d;%s;%s;%s;", &list[n].number, &list[n].city, &list[n].date, &list[n].name);
            printf("%d;%s;%s;%s;\n", list[n].number, list[n].city, list[n].date, list[n].name);
        }
    }

    return 0;
}
 

  1.  Enter count of lines: 3
  2.  Ошибка сегментирования
  3.  

Что я делаю не так?

anonymous(*) (2009-11-19 22:51:00)

Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091106 Mandriva Linux/1.9.1.5-0.1mdv2010.0 (2010.0) Firefox/3.5.5

[Ответить на это сообщение]
[#] [Добавить метку] [Редактировать] Ответ на: [C++] Чтение массива структур из файла от anonymous 2009-11-19 22:51:00
avatar
Скрыть

Re: [C++] Чтение массива структур из файла

> Что я делаю не так?
Ты не аллоцируешь память под строки, малолетний пидорас. Или память под строки выделяй, или в структуре забей охуенные массивы символов, которых на все случаи жизни хватит. Но IRL тебе за последнее оторвали бы руки.

HEBECTb_KTO(*)(2009-11-19 23:06:28)

[#] [Добавить метку] [Редактировать] Ответ на: Re: [C++] Чтение массива структур из файла от HEBECTb_KTO 2009-11-19 23:06:28
avatar
Скрыть

Re: [C++] Чтение массива структур из файла

> Ты не аллоцируешь память под строки, малолетний пидорас
Я тебя тоже очень люблю, подскажи как правильно выделить память под строки. Я что-то не очень догоняю.

anonymous(*)(2009-11-19 23:23:08)

Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091106 Mandriva Linux/1.9.1.5-0.1mdv2010.0 (2010.0) Firefox/3.5.5
[#] [Добавить метку] [Редактировать] Ответ на: Re: [C++] Чтение массива структур из файла от anonymous 2009-11-19 23:23:08
avatar
Скрыть

Re: [C++] Чтение массива структур из файла

Функцией malloc, твою мать.

В твоём случае, что бы не сильно пример переделывать, объяви три больших статических буфера и читай город-дату-имя в них, потом смотри сколько считалось и аллоцируй уже столько памяти сколько тебе надо, копируй байты туда и присваивай полям структуры. А потом, при уничтожении структуры, не забывай эту память освободить (лучше из деструктора этой структуры - плюсы-ж).

HEBECTb_KTO(*)(2009-11-20 00:08:00)

[#] [Добавить метку] [Редактировать] Ответ на: Re: [C++] Чтение массива структур из файла от HEBECTb_KTO 2009-11-20 00:08:00
avatar
Скрыть

Re: [C++] Чтение массива структур из файла

Мандрявый, это ты что-ли? Только сейчас обратил внимание на UA :-) Не ожидал от тебя ТАКОГО..

HEBECTb_KTO(*)(2009-11-20 00:10:28)

[#] [Добавить метку] [Редактировать] Ответ на: [C++] Чтение массива структур из файла от anonymous 2009-11-19 22:51:00
avatar
Скрыть

Re: [C++] Чтение массива структур из файла

> Что я делаю не так?
Это не C++. Не путай языки!

anonymous(*)(2009-11-20 00:24:14)

Midori/0.2.1 (X11; Linux i686; U; ru-ru) WebKit/531.2+
[#] [Добавить метку] [Редактировать] Ответ на: Re: [C++] Чтение массива структур из файла от HEBECTb_KTO 2009-11-20 00:10:28
avatar
Скрыть

Re: [C++] Чтение массива структур из файла

> Мандрявый, это ты что-ли?
Нет, это не я.

anonymous(*)(2009-11-20 00:31:53)

Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091106 Mandriva Linux/1.9.1.5-0.1mdv2010.0 (2010.0) Firefox/3.5.5
[#] [Добавить метку] [Редактировать] Ответ на: Re: [C++] Чтение массива структур из файла от anonymous 2009-11-20 00:24:14
avatar
Скрыть

Re: [C++] Чтение массива структур из файла

>Это не C++. Не путай языки!
а помоему это оно, только с C-шной стандартной либой.

>request* list = new request[n];
> Что я делаю не так?
ВСЁ.

amoralyrr(*)(2009-11-22 15:41:11)

Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091106 Shiretoko/3.5.5
[#] [Добавить метку] [Редактировать] Ответ на: [C++] Чтение массива структур из файла от anonymous 2009-11-19 22:51:00
avatar
Скрыть

Re: [C++] Чтение массива структур из файла

Долго я ещё буду просить исправить цвет подсветки printf в синей теме? Ну не видно ж ни х*я.

xTERM(*)(2010-01-03 00:16:12)

Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.1.6) Gecko/20091215 Ubuntu/9.10 (karmic) Firefox/3.5.6
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!