Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
2 / 2 / 0
Регистрация: 15.12.2019
Сообщений: 61

Файл: Вывести данные про абитуриентов, проходной балл которых выше 4.

10.04.2020, 22:42. Показов 2145. Ответов 10

Студворк — интернет-сервис помощи студентам
Имеется задача:
Создать текстовый файл с произвольной информацией. Организовать просмотр содержимого файла. Организовать чтение и обработку данных из файла в соответствии с заданием. Сохранить полученные результаты в новый текстовой файл.
<<Абитуриент>>
фамилия; имя; отчество; пол; национальность; дата рождения (год, месяц, число); домашний адрес (почтовый индекс, страна, область, район, город, улица, дом, квартира), оценки по экзаменам; проходной балл. Вывести данные про абитуриентов, проходной балл которых выше 4.
Я написал код, но вылезают ошибки:

1>------ Build started: Project: filefile, Configuration: Debug Win32 ------
1>Build started 10.04.2020 22:28:06.
1>InitializeBuildStatus:
1> Touching "Debug\filefile.unsuccessfulbuild".
1>ClCompile:
1> All outputs are up-to-date.
1> filefile.cpp
1>c:\proects c++\filefile\filefile\filefile.cpp(69): error C2664: 'void std::basic_ofstream<_Elem,_Traits>::open (const wchar_t *,std::ios_base::openmode,int)' : cannot convert parameter 1 from 'char [7]' to 'const wchar_t *'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\proects c++\filefile\filefile\filefile.cpp(92): error C2660: 'std::basic_ofstream<_Elem,_Traits>::clo se' : function does not take 1 arguments
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1>c:\proects c++\filefile\filefile\filefile.cpp(93): error C2664: 'void std::basic_ofstream<_Elem,_Traits>::open (const wchar_t *,std::ios_base::openmode,int)' : cannot convert parameter 1 from 'char [7]' to 'const wchar_t *'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\proects c++\filefile\filefile\filefile.cpp(94): error C2660: 'std::basic_ofstream<_Elem,_Traits>::clo se' : function does not take 1 arguments
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1>c:\proects c++\filefile\filefile\filefile.cpp(97): error C2664: 'void std::basic_ofstream<_Elem,_Traits>::open (const wchar_t *,std::ios_base::openmode,int)' : cannot convert parameter 1 from 'char [8]' to 'const wchar_t *'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\proects c++\filefile\filefile\filefile.cpp(122): error C2660: 'std::basic_ofstream<_Elem,_Traits>::clo se' : function does not take 1 arguments
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1>c:\proects c++\filefile\filefile\filefile.cpp(123): error C2664: 'void std::basic_ofstream<_Elem,_Traits>::open (const wchar_t *,std::ios_base::openmode,int)' : cannot convert parameter 1 from 'char [8]' to 'const wchar_t *'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\proects c++\filefile\filefile\filefile.cpp(124): error C2660: 'std::basic_ofstream<_Elem,_Traits>::clo se' : function does not take 1 arguments
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.93
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Что я сделал не так, подскажите пожалуйста, исправьте меня.

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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
 
using namespace std;
 
struct d_birthday
{
    int year;
    int month;
    int day;
};
struct home_address
{
    int index;
    char country[20];
    char region[30];
    char rayon[30];
    char city[30];
    char street[30];
    int home;
    int kvartira;
};
struct abiturient
{
    char surname[20];
    char name[20];
    char otch[20];
    char pol[10];
    char nationality[20];
    d_birthday birthday;
    home_address address;
    int mark;
    float ball;
};
const int N = 1;
abiturient mas[N];
 
int main()
{
    setlocale(LC_ALL, "rus");
    ofstream fout;
    int i;
    cout << "FILE NAME?"<< endl;
    char s[] = "my.txt";
    for(i = 0; i < N; i++)
    {
        cout << "Введите фамилию: "; cin >> mas[i].surname;
        cout << "Введите имя: "; cin >> mas[i].name;
        cout << "Введите отчество: "; cin >> mas[i].otch;
        cout << "Введите пол: "; cin >> mas[i].pol;
        cout << "Введите национальность: "; cin >> mas[i].nationality;
        cout << "Введите день рождения: "; cin >> mas[i].birthday.day;
        cout << "Введите месяц рождения: "; cin >> mas[i].birthday.month;
        cout << "Введите год рождения: "; cin >> mas[i].birthday.year;
        cout << "Введите индекс: "; cin >> mas[i].address.index;
        cout << "Введите страну: "; cin >> mas[i].address.country;
        cout << "Введите регион: "; cin >> mas[i].address.region;
        cout << "Введите район: "; cin >> mas[i].address.rayon;
        cout << "Введите город: "; cin >> mas[i].address.city;
        cout << "Введите улицу: "; cin >> mas[i].address.street;
        cout << "Введите номер дома: "; cin >> mas[i].address.home;
        cout << "Введите номер квартиры: "; cin >> mas[i].address.kvartira;
        cout << "Введите оценку: "; cin >> mas[i].mark;
        cout << "Введите проходной балл: "; cin >> mas[i].ball;
    }
    fout.open(s, "w");
    for(i = 0; i < N; i++)
    {
        cout << "Фамилия: " << mas[i].surname;
        cout << "Имя: " << mas[i].name;
        cout << "Отчество: " << mas[i].otch;
        cout << "Пол: " << mas[i].pol;
        cout << "Национальность: " << mas[i].nationality;
        cout << "День рождения: " << mas[i].birthday.day;
        cout << "Месяц рождения: " << mas[i].birthday.month;
        cout << "Год рождения: " << mas[i].birthday.year;
        cout << "Индекс: " << mas[i].address.index;
        cout << "Страна: " << mas[i].address.country;
        cout << "Регион: " << mas[i].address.region;
        cout << "Район: " << mas[i].address.rayon;
        cout << "Город: " << mas[i].address.city;
        cout << "Улица: " << mas[i].address.street;
        cout << "Номер дома: " << mas[i].address.home;
        cout << "Номер квартиры: " << mas[i].address.kvartira;
        cout << "Оценка: " << mas[i].mark;
        cout << "Проходной балл: " << mas[i].ball;
        cout << endl;
    }
    fout.close(s);
    fout.open(s, "r");
    fout.close(s);
    cout << "FILE NAME 2?"<< endl;
    char s2[] = "my2.txt";
    fout.open(s2, "w");
    for(i = 0; i < N; i++)
    {
        if (mas[i].ball > 4)
        {
            cout << "Фамилия: " << mas[i].surname;
            cout << "Имя: " << mas[i].name;
            cout << "Отчество: " << mas[i].otch;
            cout << "Пол: " << mas[i].pol;
            cout << "Национальность: " << mas[i].nationality;
            cout << "День рождения: " << mas[i].birthday.day;
            cout << "Месяц рождения: " << mas[i].birthday.month;
            cout << "Год рождения: " << mas[i].birthday.year;
            cout << "Индекс: " << mas[i].address.index;
            cout << "Страна: " << mas[i].address.country;
            cout << "Регион: " << mas[i].address.region;
            cout << "Район: " << mas[i].address.rayon;
            cout << "Город: " << mas[i].address.city;
            cout << "Улица: " << mas[i].address.street;
            cout << "Номер дома: " << mas[i].address.home;
            cout << "Номер квартиры: " << mas[i].address.kvartira;
            cout << "Оценка: " << mas[i].mark;
            cout << "Проходной балл: " << mas[i].ball;
            cout << endl;
        }
        fout.close(s2);
        fout.open(s2, "r");
        fout.close(s2);
    }
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.04.2020, 22:42
Ответы с готовыми решениями:

Вывести список абитуриентов, средний балл которых выше среднего балла по университету
Сказали мне сделать задание) Не поможете ) Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О....

Вывести список абитуриентов, средний балл которых выше среднего балла по университету
Всем привет! Поставлена следующая задача: Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О....

Файлы: вывести список абитуриентов, средний балл которых выше среднего балла по университету
Здраствуйте. Помогите с задачей. Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О. абитуриента,...

10
2 / 2 / 0
Регистрация: 15.12.2019
Сообщений: 61
11.04.2020, 15:11  [ТС]
Помогите пожалуйста!
0
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
11.04.2020, 15:31
Цитата Сообщение от ErritoQN Посмотреть сообщение
C++
69
fout.open(s, "w");
Цитата Сообщение от ErritoQN Посмотреть сообщение
C++
92
93
94
fout.close(s);
fout.open(s, "r");
fout.close(s);
Кто так научил делать?
0
2 / 2 / 0
Регистрация: 15.12.2019
Сообщений: 61
11.04.2020, 15:32  [ТС]
Цитата Сообщение от valen10 Посмотреть сообщение
Кто так научил делать?
В интернете посмотрел
0
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
11.04.2020, 15:37
Цитата Сообщение от ErritoQN Посмотреть сообщение
В интернете посмотрел
И как, работает?

Для начала изучите эти материалы: ofstream, open, close
0
2 / 2 / 0
Регистрация: 15.12.2019
Сообщений: 61
11.04.2020, 16:41  [ТС]
Цитата Сообщение от valen10 Посмотреть сообщение
Для начала изучите эти материалы: ofstream, open, close
Ну вроде по примеру сделал, но ничего не получилось(
Все равно что то не то сделал

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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#include <string>
 
using namespace std;
 
struct d_birthday
{
    int year;
    int month;
    int day;
};
struct home_address
{
    int index;
    char country[20];
    char region[30];
    char rayon[30];
    char city[30];
    char street[30];
    int home;
    int kvartira;
};
struct abiturient
{
    char surname[20];
    char name[20];
    char otch[20];
    char pol[10];
    char nationality[20];
    d_birthday birthday;
    home_address address;
    int mark;
    float ball;
};
const int N = 1;
abiturient mas[N];
 
int main()
{
    setlocale(LC_ALL, "rus");
    int i;
    string filename = "my.txt";
    {
        ofstream ostrim(filename, ios::binary);
     for(i = 0; i < N; i++)
    {
        cout << "Введите фамилию: "; cin >> mas[i].surname;
        cout << "Введите имя: "; cin >> mas[i].name;
        cout << "Введите отчество: "; cin >> mas[i].otch;
        cout << "Введите пол: "; cin >> mas[i].pol;
        cout << "Введите национальность: "; cin >> mas[i].nationality;
        cout << "Введите день рождения: "; cin >> mas[i].birthday.day;
        cout << "Введите месяц рождения: "; cin >> mas[i].birthday.month;
        cout << "Введите год рождения: "; cin >> mas[i].birthday.year;
        cout << "Введите индекс: "; cin >> mas[i].address.index;
        cout << "Введите страну: "; cin >> mas[i].address.country;
        cout << "Введите регион: "; cin >> mas[i].address.region;
        cout << "Введите район: "; cin >> mas[i].address.rayon;
        cout << "Введите город: "; cin >> mas[i].address.city;
        cout << "Введите улицу: "; cin >> mas[i].address.street;
        cout << "Введите номер дома: "; cin >> mas[i].address.home;
        cout << "Введите номер квартиры: "; cin >> mas[i].address.kvartira;
        cout << "Введите оценку: "; cin >> mas[i].mark;
        cout << "Введите проходной балл: "; cin >> mas[i].ball;
    }
      for(i = 0; i < N; i++)
    {
    ostrim.write(reinterpret_cast<char*>(&mas[i].surname), sizeof(mas[i].surname);
    ostrim.write(reinterpret_cast<char*>(&mas[i].name), sizeof(mas[i].name);
    ostrim.write(reinterpret_cast<char*>(&mas[i].otch), sizeof(mas[i].otch);
    ostrim.write(reinterpret_cast<char*>(&mas[i].pol), sizeof(mas[i].pol);
    ostrim.write(reinterpret_cast<char*>(&mas[i].nationality), sizeof(mas[i].nationality);
    ostrim.write(reinterpret_cast<char*>(&mas[i].birthday.day), sizeof(mas[i].birthday.day);
    ostrim.write(reinterpret_cast<char*>(&mas[i].birthday.month), sizeof(mas[i].birthday.month);
    ostrim.write(reinterpret_cast<char*>(&mas[i].birthday.year), sizeof(mas[i].birthday.year);
    ostrim.write(reinterpret_cast<char*>(&mas[i].address.index), sizeof(mas[i].address.index);
    ostrim.write(reinterpret_cast<char*>(&mas[i].address.country), sizeof(mas[i].address.country);
    ostrim.write(reinterpret_cast<char*>(&mas[i].address.region), sizeof(mas[i].address.region);
    ostrim.write(reinterpret_cast<char*>(&mas[i].address.rayon), sizeof(mas[i].address.rayon);
    ostrim.write(reinterpret_cast<char*>(&mas[i].address.city), sizeof(mas[i].address.city);
    ostrim.write(reinterpret_cast<char*>(&mas[i].address.street), sizeof(mas[i].address.street);
    ostrim.write(reinterpret_cast<char*>(&mas[i].address.home), sizeof(mas[i].address.home);
    ostrim.write(reinterpret_cast<char*>(&mas[i].address.kvartira), sizeof(mas[i].address.kvartira);
    ostrim.write(reinterpret_cast<char*>(&mas[i].address.mark), sizeof(mas[i].address.mark);
    ostrim.write(reinterpret_cast<char*>(&mas[i].address.ball), sizeof(mas[i].address.ball);
    }
    ifstream istrm (filename, ios::binary);
      for(i = 0; i < N; i++)
    {
    istrim.read(reinterpret_cast<char*>(&mas[i].surname), sizeof(mas[i].surname);
    istrim.read(reinterpret_cast<char*>(&mas[i].name), sizeof(mas[i].name);
    istrim.read(reinterpret_cast<char*>(&mas[i].otch), sizeof(mas[i].otch);
    istrim.read(reinterpret_cast<char*>(&mas[i].pol), sizeof(mas[i].pol);
    istrim.read(reinterpret_cast<char*>(&mas[i].nationality), sizeof(mas[i].nationality);
    istrim.read(reinterpret_cast<char*>(&mas[i].birthday.day), sizeof(mas[i].birthday.day);
    istrim.read(reinterpret_cast<char*>(&mas[i].birthday.month), sizeof(mas[i].birthday.month);
    istrim.read(reinterpret_cast<char*>(&mas[i].birthday.year), sizeof(mas[i].birthday.year);
    istrim.read(reinterpret_cast<char*>(&mas[i].address.index), sizeof(mas[i].address.index);
    istrim.read(reinterpret_cast<char*>(&mas[i].address.country), sizeof(mas[i].address.country);
    istrim.read(reinterpret_cast<char*>(&mas[i].address.region), sizeof(mas[i].address.region);
    istrim.read(reinterpret_cast<char*>(&mas[i].address.rayon), sizeof(mas[i].address.rayon);
    istrim.read(reinterpret_cast<char*>(&mas[i].address.city), sizeof(mas[i].address.city);
    istrim.read(reinterpret_cast<char*>(&mas[i].address.street), sizeof(mas[i].address.street);
    istrim.read(reinterpret_cast<char*>(&mas[i].address.home), sizeof(mas[i].address.home);
    istrim.read(reinterpret_cast<char*>(&mas[i].address.kvartira), sizeof(mas[i].address.kvartira);
    istrim.read(reinterpret_cast<char*>(&mas[i].address.mark), sizeof(mas[i].address.mark);
    istrim.read(reinterpret_cast<char*>(&mas[i].address.ball), sizeof(mas[i].address.ball);
    }
        return 0;
}
Добавлено через 18 минут
Ничего не понимаю в этих файлах
Объясните пожалуйста как правильно надо делать
0
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
11.04.2020, 16:53
ErritoQN, а что в них понимать? Тот же поток, как std::cin или std::cout.
C++
1
2
3
4
5
6
7
8
9
10
11
// Открываем файл для чтения.
ifstream fin("имя файла для чтения.txt");
if (!fin) {
    cerr << "Ошибка открытия файла";
}
 
// Открываем файл для записи.
ofstream fout("имя файла для записи.txt");
if (!fout) {
    cerr << "Ошибка создания/открытия файла";
}
И дальше с fin как с cin, а с fout как с cout работаете. fin и fout - просто имена, можно другие указать, какие удобно.
0
2 / 2 / 0
Регистрация: 15.12.2019
Сообщений: 61
11.04.2020, 20:31  [ТС]
Цитата Сообщение от valen10 Посмотреть сообщение
И дальше с fin как с cin, а с fout как с cout работаете. fin и fout - просто имена, можно другие указать, какие удобно.
Ну вот как вы и сказали делал. Сначала ввожу с помощью цикла данные в массив. Потом ввожу значения переменных в файл. И вывожу что находится в файле. Но у меня ничего не работает(
Я уже как только не пробовал, у меня была куча вариантов и все не верно.
Замучился уже
Как это должно выглядеть? Я не понимаю
Файл вообще не создается
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#include <string>
 
using namespace std;
 
struct d_birthday
{
    int year;
    int month;
    int day;
};
struct home_address
{
    int index;
    char country[20];
    char region[30];
    char rayon[30];
    char city[30];
    char street[30];
    int home;
    int kvartira;
};
struct abiturient
{
    char surname[20];
    char name[20];
    char otch[20];
    char pol[10];
    char nationality[20];
    d_birthday birthday;
    home_address address;
    int mark;
    float ball;
};
const int N = 1;
abiturient mas[N];
 
int main()
{
    setlocale(LC_ALL, "rus");
    int i;
     for(i = 0; i < N; i++)
    {
        cout << "Введите фамилию: "; cin >> mas[i].surname;
        cout << "Введите имя: "; cin >> mas[i].name;
        cout << "Введите отчество: "; cin >> mas[i].otch;
        cout << "Введите пол: "; cin >> mas[i].pol;
        cout << "Введите национальность: "; cin >> mas[i].nationality;
        cout << "Введите день рождения: "; cin >> mas[i].birthday.day;
        cout << "Введите месяц рождения: "; cin >> mas[i].birthday.month;
        cout << "Введите год рождения: "; cin >> mas[i].birthday.year;
        cout << "Введите индекс: "; cin >> mas[i].address.index;
        cout << "Введите страну: "; cin >> mas[i].address.country;
        cout << "Введите регион: "; cin >> mas[i].address.region;
        cout << "Введите район: "; cin >> mas[i].address.rayon;
        cout << "Введите город: "; cin >> mas[i].address.city;
        cout << "Введите улицу: "; cin >> mas[i].address.street;
        cout << "Введите номер дома: "; cin >> mas[i].address.home;
        cout << "Введите номер квартиры: "; cin >> mas[i].address.kvartira;
        cout << "Введите оценку: "; cin >> mas[i].mark;
        cout << "Введите проходной балл: "; cin >> mas[i].ball;
    }
    string filename = "my.txt";
    {
    ofstream fin(filename, ios::binary);
    if (!fin)
    {
        cerr << "Ошибка создания/открытия файла";
    }
     for(i = 0; i < N; i++)
    {
        fout << "Фамилия: "; fin >> mas[i].surname;
        fout << "Имя: " fin >> mas[i].name;
        fout << "Отчество: "; fin >> mas[i].otch;
        fout << "Пол: "; fin >> mas[i].pol;
        fout << "Национальность: "; fin >> mas[i].nationality;
        fout << "День рождения: "; fin >> mas[i].birthday.day;
        fout << "Месяц рождения: "; fin >> mas[i].birthday.month;
        fout << "Год рождения: "; fin >> mas[i].birthday.year;
        fout << "Индекс: "; fin >> mas[i].address.index;
        fout << "Страна: "; fin >> mas[i].address.country;
        fout << "Регион: "; fin >> mas[i].address.region;
        fout << "Район: "; fin >> mas[i].address.rayon;
        fout << "Город: "; fin >> mas[i].address.city;
        fout << "Улица: "; fin >> mas[i].address.street;
        fout << "Номер дома: "; fin >> mas[i].address.home;
        fout << "Номер квартиры: "; fin >> mas[i].address.kvartira;
        fout << "Оценка: "; fin >> mas[i].mark;
        fout << "Проходной балл: "; fin >> mas[i].ball;
        fout << endl;
    }
     ifstream fout(filename, ios::binary);
    if (!fout)
    {
    cerr << "Ошибка открытия файла";
    }
        fout << "Фамилия: " << mas[i].surname;
        fout << "Имя: " << mas[i].name;
        fout << "Отчество: " << mas[i].otch;
        fout << "Пол: " << mas[i].pol;
        fout << "Национальность: " << mas[i].nationality;
        fout << "День рождения: " << mas[i].birthday.day;
        fout << "Месяц рождения: " << mas[i].birthday.month;
        fout << "Год рождения: " << mas[i].birthday.year;
        fout << "Индекс: " << mas[i].address.index;
        fout << "Страна: " << mas[i].address.country;
        fout << "Регион: " << mas[i].address.region;
        fout << "Район: " << mas[i].address.rayon;
        fout << "Город: " << mas[i].address.city;
        fout << "Улица: " << mas[i].address.street;
        fout << "Номер дома: " << mas[i].address.home;
        fout << "Номер квартиры: " << mas[i].address.kvartira;
        fout << "Оценка: " << mas[i].mark;
        fout << "Проходной балл: " << mas[i].ball;
        fout << endl;
    }
    return 0;
}
0
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
12.04.2020, 00:14
Цитата Сообщение от ErritoQN Посмотреть сообщение
Но у меня ничего не работает(
Думать немного нужно, а не просто копипастить куски кода. Зачем выводить в файл приглашение для ввода? И тут же пытаться оттуда что-то считывать. Этот диалог нужен для пользователя, в файл просто сохраняются данные без всяких вопросов, и затем так же оттуда считываются.

Сделал рабочий вариант на основе вашего кода.
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#include <string>
 
using namespace std;
 
struct d_birthday
{
    int year;
    int month;
    int day;
};
struct home_address
{
    int index;
    char country[20];
    char region[30];
    char rayon[30];
    char city[30];
    char street[30];
    int home;
    int kvartira;
};
struct abiturient
{
    char surname[20];
    char name[20];
    char otch[20];
    char pol[10];
    char nationality[20];
    d_birthday birthday;
    home_address address;
    int mark;
    float ball;
};
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    const int N = 1;
    abiturient mas[N];
 
//    int i;
 
    for(int i = 0; i < N; i++)
    {
        cout << "Введите фамилию: "; cin >> mas[i].surname;
        cout << "Введите имя: "; cin >> mas[i].name;
        cout << "Введите отчество: "; cin >> mas[i].otch;
        cout << "Введите пол: "; cin >> mas[i].pol;
        cout << "Введите национальность: "; cin >> mas[i].nationality;
        cout << "Введите день рождения: "; cin >> mas[i].birthday.day;
        cout << "Введите месяц рождения: "; cin >> mas[i].birthday.month;
        cout << "Введите год рождения: "; cin >> mas[i].birthday.year;
        cout << "Введите индекс: "; cin >> mas[i].address.index;
        cout << "Введите страну: "; cin >> mas[i].address.country;
        cout << "Введите регион: "; cin >> mas[i].address.region;
        cout << "Введите район: "; cin >> mas[i].address.rayon;
        cout << "Введите город: "; cin >> mas[i].address.city;
        cout << "Введите улицу: "; cin >> mas[i].address.street;
        cout << "Введите номер дома: "; cin >> mas[i].address.home;
        cout << "Введите номер квартиры: "; cin >> mas[i].address.kvartira;
        cout << "Введите оценку: "; cin >> mas[i].mark;
        cout << "Введите проходной балл: "; cin >> mas[i].ball;
    }
    string filename = "my.txt";
 
    ofstream fout(filename/*, ios::binary*/); // Открытие текстового файла для чтения,
                                              // binary - бинарный режим, у него другой способ чтения/записи.
    if (!fout)
    {
        cerr << "Ошибка создания/открытия файла `" << filename << "`";
        return 1;
    }
 
    for(int i = 0; i < N; i++)
    {
        fout << mas[i].surname << ' ';
        fout << mas[i].name << ' ';
        fout << mas[i].otch << ' ';
        fout << mas[i].pol << ' ';
        fout << mas[i].nationality << ' ';
        fout << mas[i].birthday.day << ' ';
        fout << mas[i].birthday.month << ' ';
        fout << mas[i].birthday.year << ' ';
        fout << mas[i].address.index << ' ';
        fout << mas[i].address.country << ' ';
        fout << mas[i].address.region << ' ';
        fout << mas[i].address.rayon << ' ';
        fout << mas[i].address.city << ' ';
        fout << mas[i].address.street << ' ';
        fout << mas[i].address.home << ' ';
        fout << mas[i].address.kvartira << ' ';
        fout << mas[i].mark << ' ';
        fout << mas[i].ball << ' ';
        fout << endl;
    }
 
    fout.close(); // Закрытие файла после записи.
 
    ifstream fin(filename/*, ios::binary*/);
    if (!fin)
    {
        cerr << "Ошибка открытия файла";
        return 1;
    }
 
    for(int i = 0; i < N; i++)
    {
        fin >> mas[i].surname;
        fin >> mas[i].name;
        fin >> mas[i].otch;
        fin >> mas[i].pol;
        fin >> mas[i].nationality;
        fin >> mas[i].birthday.day;
        fin >> mas[i].birthday.month;
        fin >> mas[i].birthday.year;
        fin >> mas[i].address.index;
        fin >> mas[i].address.country;
        fin >> mas[i].address.region;
        fin >> mas[i].address.rayon;
        fin >> mas[i].address.city;
        fin >> mas[i].address.street;
        fin >> mas[i].address.home;
        fin >> mas[i].address.kvartira;
        fin >> mas[i].mark;
        fin >> mas[i].ball;
    }
 
    fin.close();
 
    cout << endl << "[Прочитано из файла]" << endl;
    for(int i = 0; i < N; i++)
    {
        cout << "[" << i + 1 << "]" << endl;
        cout << "Фамилия: " << mas[i].surname << endl;
        cout << "Имя: " << mas[i].name << endl;
        cout << "Отчество: " << mas[i].otch << endl;
        cout << "Пол: " << mas[i].pol << endl;
        cout << "Национальность: " << mas[i].nationality << endl;
        cout << "День рождения: " << mas[i].birthday.day << endl;
        cout << "Месяц рождения: " << mas[i].birthday.month << endl;
        cout << "Год рождения: " << mas[i].birthday.year << endl;
        cout << "Индекс: " << mas[i].address.index << endl;
        cout << "Страна: " << mas[i].address.country << endl;
        cout << "Регион: " << mas[i].address.region << endl;
        cout << "Район: " << mas[i].address.rayon << endl;
        cout << "Город: " << mas[i].address.city << endl;
        cout << "Улица: " << mas[i].address.street << endl;
        cout << "Номер дома: " << mas[i].address.home << endl;
        cout << "Номер квартиры: " << mas[i].address.kvartira << endl;
        cout << "Оценка: " << mas[i].mark << endl;
        cout << "Проходной балл: " << mas[i].ball << endl;
        cout << endl;
    }
 
    return 0;
}
Но учтите, здесь есть существенный недостаток: не проверяется выход за границы массива при вводе строк.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
12.04.2020, 00:30
Цитата Сообщение от valen10 Посмотреть сообщение
не проверяется выход за границы массива при вводе строк
переходите на string и таких вопросов не будет (valen10 это я не Вам, а ТС говорю )

не по теме вопроса: оценка вводится не одна, а несколько
Цитата Сообщение от ErritoQN Посмотреть сообщение
оценки по экзаменам
так как количество оценок не указано, введите например 3 оценки - по математике, физике и английскому языку. проходной балл рассчитывается как среднее арифметическое оценок.
0
2 / 2 / 0
Регистрация: 15.12.2019
Сообщений: 61
12.04.2020, 22:20  [ТС]
Цитата Сообщение от valen10 Посмотреть сообщение
ifstream fin(filename/*, ios::binary*/);
    if (!fin)
    {
        cerr << "Ошибка открытия файла";
        return 1;
    }
for(int i = 0; i < N; i++)
    {
        fin >> mas[i].surname;
        fin >> mas[i].name;
        fin >> mas[i].otch;
        fin >> mas[i].pol;
        fin >> mas[i].nationality;
        fin >> mas[i].birthday.day;
        fin >> mas[i].birthday.month;
        fin >> mas[i].birthday.year;
        fin >> mas[i].address.index;
        fin >> mas[i].address.country;
        fin >> mas[i].address.region;
        fin >> mas[i].address.rayon;
        fin >> mas[i].address.city;
        fin >> mas[i].address.street;
        fin >> mas[i].address.home;
        fin >> mas[i].address.kvartira;
        fin >> mas[i].mark;
        fin >> mas[i].ball;
    }
fin.close();
А разве вот эта часть кода не должна открывать файл и выводить все что в нем есть?
Я убрал этот кусочек кода и так то ничего не поменялось
Создается файл с указанными данными и на консоль выводится данные из файла
Как с ним так и без ничего не меняется
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.04.2020, 22:20
Помогаю со студенческими работами здесь

Типизированный файл: Определить средний балл по университету и вывести список абитуриентов, средний балл которых выше среднего балла по университету
Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О. абитуриента, оценки. Определить средний балл по...

Определить средний балл по университету и вывести список абитуриентов, средний балл которых выше среднего
Ведомость абитуриентов, сдавших вступительные экзамены в университет содержит: Ф. И. О. абитуриента, оценки. Определить средний балл по...

Вывести список абитуриентов, средний балл которых выше среднего балла по университету
Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О. абитуриента, баллы. Определить средний балл по...

Вывести список абитуриентов, средний балл которых выше среднего балла по университету
Цель задания:Ведомость абитуриентов, сдавших вступительные экзамены в университет содержит: Ф.И.О. абитуриента, оценки. Определить средний...

Определить количество абитуриентов, средний балл которых выше среднего балла по институту
У меня есть программа, у которой условие &quot; Определить количество абитуриентов, средний балл которых выше среднего балла по институту....


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru