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

Добавление элементов структуры - C++

Восстановить пароль Регистрация
 
fktrctq0321
0 / 0 / 0
Регистрация: 10.05.2013
Сообщений: 37
07.09.2013, 17:44     Добавление элементов структуры #1
Здравствуйте. Очень нужна помощь.
Было задано комплексное задание по структурам.
Одним из подзаданий является добавление новых записей в уже имеющуюся структуру.
Столкнулся с проблемой, как это реализовать.
Фрагмент ("эскиз") кода вот такой:
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
                        cout << "Сколько хотите стран добавить?\t";
            unsigned short number_country; 
            cin >> number_country;
            
            ifstream output("D:\\info.txt");
            int p;
            output>>p;
            
            ofstream input("D:\\info.txt");
            input << p+number_country;
            input.close();
 
            world *res = new world[p+number_country];
            for (int i=0; i<p; i++)
            {
                output>>res[i].name;
                output>>res[i].capital;
                output>>res[i].population;
                output>>res[i].area;
            }
            output.close();
            system("cls");
 
            f_in = fopen("D:\\info.txt", "at");
            for (int i=p; i<p+number_country;i++)
            {
                
                wcin.ignore(256,L'\n');
                cout << "Название:\t\t\t";
                fprintf(f_in, "Название:\t\t\t");
                getline(cin, res[i].name, '\n');
                 // КАК ВОТ ТУТ ДОПИСАТЬ В ФАЙЛ ЭЛЕМЕНТ res[i].name ??
 
                cout << "Столица:\t\t\t";
                getline(cin, res[i].capital, '\n');
                // АНАЛОГИЧНО, КАК МОЖНО ДОПИСАТЬ?
 
                cout<<"Население:\t\t\t";
                cin >> res[i].population;
                // АНАЛОГИЧНО
 
                cout<<"Площадь:\t\t\t";
                cin >> res[i].area;
                //АНАЛОГИЧНО
            }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2013, 17:44     Добавление элементов структуры
Посмотрите здесь:

Сортировка элементов структуры C++
C++ Отбор элементов структуры
C++ создание структуру СТРАНА. добавление и удаление элементов из структуры
C++ Добавление экземпляра структуры в конец коллекции
C++ Адреса элементов структуры
C++ Добавление элементов в очередь
Добавление элементов в список C++
Двунаправленный список (добавление/удаление элементов в голову, просмотр списка, реализовать дублирование элементов с заданным значением) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GoldenChild
28 / 28 / 4
Регистрация: 12.06.2013
Сообщений: 65
07.09.2013, 18:07     Добавление элементов структуры #2
Если ты хочешь добавлять новые поля в файл, то придется сначала считать их в массив структур, при этом запоминая сколько их, после уже существующих добавить новые, увеличивая счетчик, а потом уже это все снова записать в файл.
Если добавление идет в программе несколько раз, а запись в файл в конце, то просто создай глобальную переменную-счетчик.
fktrctq0321
0 / 0 / 0
Регистрация: 10.05.2013
Сообщений: 37
07.09.2013, 18:50  [ТС]     Добавление элементов структуры #3
Цитата Сообщение от GoldenChild Посмотреть сообщение
Если ты хочешь добавлять новые поля в файл, то придется сначала считать их в массив структур, при этом запоминая сколько их, после уже существующих добавить новые, увеличивая счетчик, а потом уже это все снова записать в файл.
Если добавление идет в программе несколько раз, а запись в файл в конце, то просто создай глобальную переменную-счетчик.
так вроде так и делаю.. тут ерунда-то осталась... просто не знаю какой функцией воспользоваться, чтобы непосредственно дописать (см. код и комментарии)
Подскажете?
Заранее спасибо

Добавлено через 34 минуты
Вот ещё такой вариант есть, тут отлично всё дописывает, только вначале файла надо цифру переписать (например, там была 1, добавили 1 страну, должна стать 2). Не знаю как переписать ту единичку на 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
42
43
44
45
cout << "Сколько хотите стран добавить?\t";
            unsigned short number_country; 
            cin >> number_country;
            
            
            ifstream output("D:\\info.txt");
            int p;
            output>>p;
            
 
            world *res = new world[p+number_country];
            for (int i=0; i<p; i++)
            {
                output>>res[i].name;
                output>>res[i].capital;
                output>>res[i].population;
                output>>res[i].area;
            }
 
            system("cls");
            
            
            for (int i=p; i<p+number_country;i++)
            {
                wcin.ignore(256,L'\n');
                cout << "Название:\t\t\t";
                file << "Название:\t\t\t";
                getline(cin, res[i].name, '\n');
                file<<res[i].name<<endl;
 
                cout << "Столица:\t\t\t";
                file << "Столица:\t\t\t";
                getline(cin, res[i].capital, '\n');
                file<<res[i].capital<<endl;
 
                cout<<"Население:\t\t\t\t";
                file << "Население:\t\t\t\t";
                cin >> res[i].population;
                file<<res[i].population<<endl;
 
                cout<<"Площадь:\t\t\t\t";
                file << "Площадь:\t\t\t\t";
                cin >> res[i].area;
                file<<res[i].area<<endl<<endl;
            }
Yandex
Объявления
07.09.2013, 18:50     Добавление элементов структуры
Ответ Создать тему
Опции темы

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