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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
nikola_omsk
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
#1

Написать функцию для записи в файл массива структур - C++

11.05.2012, 20:12. Просмотров 1121. Ответов 13
Метки нет (Все метки)

Помогите найти ошибку...выходит: undefined reference to `WinMain@16'|
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include "fstream"
#include "iostream"
using namespace std;
 
int n=0;//счетчик для количества ппациентов
int num_w=0;
struct Pacient{
    char surname[40];
    char name[40];
    char strana[40];
    char oblast[40];
    char raion[40];
    char gorod[40];
    char ulica[40];
    char dom[40];
    char kvartira[40];
    char god[20];
    char  nomertel[40];
};
 
 
Pacient* Create()
{
    Pacient *A=new Pacient[100];
    ofstream f("text.txt");
    int num_w=0;
    cout << "Введите число записей:";
    cin >> num_w;
     for(int i=0; i<num_w; i++){
 
            cout << "\nЗапись №"<<i+1;
            cout << "\nВведите фамилию:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].surname, sizeof A[i].surname);
 
            cout << "\nВведите имя:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].name, sizeof A[i].name);
 
            cout << "\nВведите страна:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].strana, sizeof A[i].strana);
 
            cout << "\nВведите область:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].oblast, sizeof A[i].oblast);
 
            cout << "\nВведите район:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].raion, sizeof A[i].raion);
 
            cout << "\nВведите город:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].gorod, sizeof A[i].gorod);
 
            cout << "\nВведите улица:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].ulica, sizeof A[i].ulica);
 
            cout << "\nВведите дом:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].dom, sizeof A[i].dom);
 
            cout << "\nВведите квартира:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].kvartira, sizeof A[i].kvartira);
 
            cout << "\nВведите год:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].god, sizeof A[i].god);
 
            cout << "\nВведите номертел:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].nomertel, sizeof A[i].nomertel);
 
        n++;
    }f.close();//закрываем файл
    return A;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2012, 20:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать функцию для записи в файл массива структур (C++):

Написать функцию для записи в файл массива структур - C++
помогите написать программу... может у кого нибудь уже есть готовая... нужно: 1) написать функцию для записи в файл массива структур ...

Написать функцию sort() для сортировки массива структур - C++
Напишите пожалуйста программу по заданию,не могу понять как делать. Условие программы: Напишите функцию sort() для сортировки...

Реализовать функцию построчной записи значений двумерного массива в одномерный и наоборот; написать юнит-тесты - C++
Написать юнит-тесты и реализовать следующую функцию: Построчно записывает значения двумерного массива в одномерный или наоборот....

Как передать файл в функцию для записи/чтения (разные функции) - C++
Собственно сабж. Во первых есть вот такой блок в main: ofstream f1(&quot;F1.txt&quot;); cout&lt;&lt;&quot;Введите элементы в файл 1&quot;&lt;&lt;endl; for (i=0;...

Удаление записи из массива структур. - C++
Здравствуйте! Прошу помочь мне с таким делом: необходимо удалить запись из массива структур. int main() { struct List{ // Объявление...

Передача массива структур в функцию не указывая размера массива - C++
Я читаю с командной строки файл в котором содержится массив структур. Есть библиотека с функцией в которую я прередаю файл и массив...

13
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
11.05.2012, 20:26 #2
У вас нет главной функциия

C++
1
2
3
4
int main()
{
    return 0;
}
0
nikola_omsk
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
11.05.2012, 20:29  [ТС] #3
))как мог забыть..а как вызвать теперь функцию
0
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
11.05.2012, 20:33 #4
возможно так
C++
1
2
3
4
5
int main()
{
    Create();
    return 0;
}
0
nikola_omsk
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
11.05.2012, 20:43  [ТС] #5
спасибо...в файле получил следущее 4040404040404040402040...что может быть

Добавлено через 5 минут
Цитата Сообщение от nikola_omsk Посмотреть сообщение
Помогите найти ошибку...выходит: undefined reference to `WinMain@16'|
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "fstream"
#include "iostream"
using namespace std;
 
int n=0;//счетчик для количества ппациентов
int num_w=0;
struct Pacient{
    char surname[40];
    char name[40];
    char strana[40];
    char oblast[40];
    char raion[40];
    char gorod[40];
    char ulica[40];
    char dom[40];
    char kvartira[40];
    char god[20];
    char  nomertel[40];
то есть вот эти числа

Добавлено через 1 минуту
может не getline???
0
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
11.05.2012, 20:52 #6
C++
1
2
3
 cout << "\nВведите фамилию:";
            cin.getline(A[i].surname, 24);
            f << (A[i].surname);
0
nikola_omsk
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
11.05.2012, 20:59  [ТС] #7
пустой файл в итоге
0
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
11.05.2012, 21:02 #8
вы везде считаваете

C++
1
cin.getline(A[i].surname, 24);
внимательно

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
 cout << "\nЗапись №"<<i+1;
            cout << "\nВведите фамилию:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].surname, sizeof A[i].surname);
 
            cout << "\nВведите имя:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].name, sizeof A[i].name);
 
            cout << "\nВведите страна:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].strana, sizeof A[i].strana);
 
            cout << "\nВведите область:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].oblast, sizeof A[i].oblast);
 
            cout << "\nВведите район:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].raion, sizeof A[i].raion);
 
            cout << "\nВведите город:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].gorod, sizeof A[i].gorod);
 
            cout << "\nВведите улица:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].ulica, sizeof A[i].ulica);
 
            cout << "\nВведите дом:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].dom, sizeof A[i].dom);
 
            cout << "\nВведите квартира:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].kvartira, sizeof A[i].kvartira);
 
            cout << "\nВведите год:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].god, sizeof A[i].god);
 
            cout << "\nВведите номертел:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].nomertel, sizeof A[i].nomertel)
а записываете уже в файл

имя, страну и тд, конечно там нечего не будет(хотя должна быть какаето белиберда)

делай так

C++
1
2
3
4
5
6
7
8
9
10
11
12
 cout << "\nЗапись №"<<i;
            cout << "\nВведите фамилию:";
            cin.getline(A[i].surname, 24);
            f << (A[i].surname);
 
            cout << "\nВведите имя:";
            cin.getline(A[i].name, 24);
            f << (A[i].name);
 
            cout << "\nВведите страна:";
            cin.getline(A[i].strana, 24);
            f << (A[i].strana);
и так далее
0
nikola_omsk
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
11.05.2012, 21:09  [ТС] #9
да все так...
задание:написать функцию для записи в файл массива структур....в этом вся суть
0
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
11.05.2012, 21:10 #10
Цитата Сообщение от nikola_omsk Посмотреть сообщение
да все так...
задание:написать функцию для записи в файл массива структур....в этом вся суть
читайте мой придыдущий пост и исправляйте! не че у вас не так!
0
nikola_omsk
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
11.05.2012, 21:13  [ТС] #11
я тупой...
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <fstream>
#include <iostream>
using namespace std;
 
int n=0;//счетчик для количества ппациентов
struct Pacient{
    char surname[40];
    char name[40];
    char strana[40];
    char oblast[40];
    char raion[40];
    char gorod[40];
    char ulica[40];
    char dom[40];
    char kvartira[40];
    char god[20];
    char  nomertel[40];
};
 
 
Pacient* Create()
{
    Pacient *A=new Pacient[100];
    ofstream f("text.txt");
    int num_w=0;
    int i=0;
    int n=0;
    cout << "Введите число записей:";
    cin >> num_w;
     for(int i=0; i<num_w; i++){
 
            cout << "\nЗапись №"<<i+1;
            cout << "\nВведите фамилию:";
            cin.getline(A[i].surname, 24);
            f << (A[i].surname);
 
            cout << "\nВведите имя:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].name);
 
            cout << "\nВведите страна:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].strana);
 
            cout << "\nВведите область:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].oblast);
 
            cout << "\nВведите район:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].raion);
 
            cout << "\nВведите город:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].gorod);
 
            cout << "\nВведите улица:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].ulica);
 
            cout << "\nВведите дом:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].dom);
 
            cout << "\nВведите квартира:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].kvartira);
 
            cout << "\nВведите год:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].god);
 
            cout << "\nВведите номертел:";
            cin.getline(A[i].surname, 24);
            f<< (A[i].nomertel);
 
        n++;
    }f.close();//закрываем файл
    return A;
}
 
int main()
 
{
   Create();
   return 0;
}
в файле пусто......
0
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
11.05.2012, 21:17 #12
Пойдем по другому!

C++
1
2
3
cout << "\nВведите страна:";
            cin.getline(A[i].surname, 24); // считываем фамилию
            f << (A[i].strana);//а в файл записываем страну, какую??
Тут вы считали так сказать фамилию(surname), а в файл записываете страну(strana), какую вы запишите страну в файл если вы ее не ввели, не считали!

C++
1
2
3
 cout << "\nВведите страна:";
            cin.getline(A[i].strana, 24);
            f << (A[i].strana);
и в током же духе везде
1
nikola_omsk
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
11.05.2012, 21:22  [ТС] #13
спасибо..затупил так затупил..ахах
0
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
11.05.2012, 23:10 #14
Цитата Сообщение от nikola_omsk Посмотреть сообщение
Pacient *A=new Pacient[100];
Выделили, а не освободили память

C++
1
delete [] A;
0
11.05.2012, 23:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2012, 23:10
Привет! Вот еще темы с ответами:

Написать функцию, принимающую массив структур Student - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; struct STUDENT // структура STUDENT { string name; ...

Написать функцию replace для массива char'ов - C++
Нужно написать функцию замены подстроки f на подстроку t в строке а: int replace(char a, const char f, const char t)f может быть равна...

Написать функцию для обработки одномерного массива - C++
Написать функцию для обработки одномерного массива: нахождение количества вхождений, заданного пользователем числа в массив целых...

Написать функцию поиска структур (записей) с заданными признаками - C++
Написать функцию поиска структур (записей) с заданными признаками (например, выбор структур по заданному диапазону значений элемента). ...


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

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

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