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

Чтение структуры из файла и запись нового - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Helo World на программе CodeBlocks http://www.cyberforum.ru/cpp-beginners/thread113441.html
Привет. Кодеблокс - свободная среда разработки, поэтому охота с ней поковыряться. Я начинающий, пришел за помощью в практической части. Итак.. запускаем :) Жмём как я понял file - new - project, появляется окно с выбором. Вот тут первые проблемы выбора. С одной стороны нужна прога для винды (project - Win32 GUI), с другой стороны нужно писать на си (files - c/c++header или source). Что...
C++ Цикл - сдвиг строки в право Неправильно выполняется программы, нужно чтобы строка сдвигалась на один символ в право. Проверьте пожалуйста цикл на правильность. //Row.h class Row { protected: char *Str; public: Row(char* pS); ~Row(); int LengthStr(); http://www.cyberforum.ru/cpp-beginners/thread113434.html
Написать и протестировать функцию C++
Задача 49 Написать и протестировать функцию, которая по заданному натуральному числу определяет его первую и последнюю цифры.
C++ Написать и протестировать функцию
Задача 49 Написать и протестировать функцию, которая по заданному натуральному числу определяет его первую и последнюю цифры. Задача 50 Написать и протестировать функцию, которая по натуральному k и вещественным вычисляет значение , используя следующую итерационную формулу: В качестве результата берется то значение , для которого
C++ Сдвиг строки вправо http://www.cyberforum.ru/cpp-beginners/thread113423.html
Нужно написать программу по наследованию которая измеряет длину строки и сдвигает строку в право на один символ. Программа выдает следующую ошибку: variant 11 nasledovanie.cpp d:\мои документы\visual studio 2008\projects\variant 11 nasledovanie\variant 11 nasledovanie\variant 11 nasledovanie.cpp(14) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int...
C++ Зависание на деструкторе. Всем доброго времени суток! Проблема такая: есть класс cData в нём статический член staric int amount, при вызове конструктора увеличиваем amount на 1, в деструкторе уменьшаем на 1, получается что то вроде счётчика сущуствующих экземпляров. В другом классе cDataArray есть члены cData *data1 и cData *data2, для них сначало выделяю динамически память спомощью new, потом пытаясь удалить (delete... подробнее

Показать сообщение отдельно
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
14.04.2010, 04:36     Чтение структуры из файла и запись нового
Цитата Сообщение от artem0n2
Kolja
svarshik
758457
а, ну это тогда можно напрямую считать

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    int retval;
 
    i = 0;
 
    while
    (
        (retval = fscanf(base, "%99[^\n]\n%49[^\n]\n%49[^\n]",
            info[i].name, info[i].rabota.AS, info[i].rabota.Tel)) != EOF
    ) {
 
        if (retval != 3)
            fprintf(stderr, "error" "\n");
 
        printf("%s ; %s ; %s " "\n",
            info[i].name, info[i].rabota.AS, info[i].rabota.Tel);
 
        i++;
    }
fgets() из раннего варианта кажется правильнее этого, но там в имена записываются переводы строк, то есть на первый взгляд кажется правильно, а на самом деле надо подчищать (и не только имена, везде, где fgets() встретит перевод строки, она запишет его в строку), и отсутствие какого-нибудь поля в какой-нибудь записи надо будет проверять отдельно, так как fgets() возвращает NULL в двух случаях

я бы разделил это дело

  1. создать структуры

  2. прочитать структуры

  3. если не прочитались
    выйти

  4. вывести структуры

  5. отсортировать структуры

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

Добавлено через 1 минуту
я к тому, что если даже не проверил, как прочитались данные, то и не надо сортировать их
не надо делать всё сразу
 
Текущее время: 07:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru