0 / 0 / 0
Регистрация: 03.05.2022
Сообщений: 8
1

Как считать файл?

07.05.2022, 20:36. Показов 365. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В файле находятся данные:
фамилия предмет оценка
Например:
Елисеев математика 5 литература 4 физика 3
Журавлев искусство 4 правоведение 3
Дело в том, что читает программа только первый предмет и первую оценку, как считать остальные предметы и вывести все данные на консоль?

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
#include <iostream>
#include <fstream>
#include <Windows.h>
using namespace std;
 
struct Student
{
    string name, fam;
    int mark;
}st[50];
int Num;
void ReadInfo()
{
    ifstream f("A.txt");
    int i = 0;
    while (!f.eof())
    {
        f >> st[i].fam >> st[i].name >> st[i].mark;
        i++;
    }
    Num = i - 1;
    f.close();
}
void ShowInfo()
{
    for (int i = 0; i < Num; i++)
        cout << st[i].fam << " " << st[i].name << " " << st[i].mark << " " << endl;
}
void AppendInfo()
{
    fstream f("A.txt", ios::app);
    Num++;
    cout << "Введите фамилию - ";
    cin >> st[Num - 1].fam;
    f << st[Num - 1].fam << " ";
    int countt;
    cout << "Введите количество сессий - ";
    cin >> countt;
    for (int i = 0; i < countt; i++)
    {
        int count;
        cout << "Введите количество предметов сессии " << i + 1 << " - ";
        cin >> count;
        for (int j = 0; j < count; j++)
        {
            cout << "Введите " << j + 1 << " предмет " << i + 1 << " сессии - ";
            cin >> st[Num - 1].name;
            cout << "Введите оценку - ";
            cin >> st[Num - 1].mark;
            f << st[Num - 1].name << " " << st[Num - 1].mark << " ";
        }
    }
 
    f << endl;
 
    f.close();
}
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int ch;
    do
    {
        cout << endl << "0 - Выход" << endl;
        cout << "1 - Добавить студента" << endl;
        cout << "2 - Показать введенную информацию" << endl;
        cout << "Введите значение - ";
        cin >> ch;
        switch (ch)
        {
        case 1:ReadInfo(); AppendInfo(); break;
        case 2:ReadInfo(); ShowInfo(); break;
        }
    } while (ch != 0);
    
    return 0;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2022, 20:36
Ответы с готовыми решениями:

Как считать файл построчно записывая в другой файл?
1) Данная программа считывает только первую строку следующие строки она не трогает. Хотел решить...

как считать весь файл ?
char buff; ifstream fin(&quot;/Users/Vitaly/Desktop/laba2/laba2/list.txt&quot;,ios_base::in); ...

Как Считать Весь Файл С++
Здравствуйте, у меня вопрос, если у меня есть файл, в нем у меня есть ентеры, как мне считать целый...

Как считать файл с табличкой?
Добрый вечер! Подскажите пожалуйста : у меня есть файл в формате txt, в котором находится табличка...

5
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
07.05.2022, 21:40 2
Fedr, ну в вашей структуре есть место только для одного предмета. сделайте так, чтобы туда помещалось несколько предметов и организуйте считывание нескольких предметов.
0
0 / 0 / 0
Регистрация: 03.05.2022
Сообщений: 8
07.05.2022, 21:45  [ТС] 3
да, я понимаю, а как это организовать?
0
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
07.05.2022, 21:46 4
Fedr, т.е. код не ваш?
0
0 / 0 / 0
Регистрация: 03.05.2022
Сообщений: 8
07.05.2022, 21:50  [ТС] 5
код мой
0
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
07.05.2022, 22:00 6
Fedr, теперь считывает все предметы(можете в отладчике проверить если хотите). Правда выводит только первый, но я думаю, что вы справитесь!

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 <iostream>
#include <fstream>
#include <Windows.h>
using namespace std;
 
struct Student
{
    string name[256], fam;
    int mark[256]{};
}st[50];
int Num;
void ReadInfo()
{
    ifstream f("A.txt");
    int i = 0;
    while (!f.eof())
    {
        f >> st[i].fam;
        int j = 0;
        while (f.get() != '\n')
            if (f.eof())
                break;
            else
            {
                f >> st[i].name[j]; f.get();
                f >> st[i].mark[j];
                j++;
            }
        i++;
    }
    Num = i - 1;
    f.close();
}
void ShowInfo()
{
    for (int i = 0; i < Num; i++)
        cout << st[i].fam << " " << st[i].name[0] << " " << st[i].mark[0] << " " << endl;
}
void AppendInfo()
{
    fstream f("A.txt", ios::app);
    Num++;
    cout << "Введите фамилию - ";
    cin >> st[Num - 1].fam;
    f << st[Num - 1].fam << " ";
    int countt;
    cout << "Введите количество сессий - ";
    cin >> countt;
    for (int i = 0; i < countt; i++)
    {
        int count;
        cout << "Введите количество предметов сессии " << i + 1 << " - ";
        cin >> count;
        for (int j = 0; j < count; j++)
        {
            cout << "Введите " << j + 1 << " предмет " << i + 1 << " сессии - ";
            cin >> st[Num - 1].name[0];
            cout << "Введите оценку - ";
            cin >> st[Num - 1].mark[0];
            f << st[Num - 1].name[0] << " " << st[Num - 1].mark[0] << " ";
        }
    }
 
    f << endl;
 
    f.close();
}
int main()
{
    setlocale(0, "rus");
    int ch;
    do
    {
        cout << endl << "0 - Выход" << endl;
        cout << "1 - Добавить студента" << endl;
        cout << "2 - Показать введенную информацию" << endl;
        cout << "Введите значение - ";
        cin >> ch;
        switch (ch)
        {
        case 1:ReadInfo(); AppendInfo(); break;
        case 2:ReadInfo(); ShowInfo(); break;
        }
    } while (ch != 0);
    system("pause");
    return 0;
}
1
07.05.2022, 22:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2022, 22:00
Помогаю со студенческими работами здесь

Как считать и записать в файл?
Доброго времени суток. Вопрос вот в чем. Реализую md5 алгоритм шифрования и финальным штрихом...

Как можно считать файл *.pas или *.cpp как текстовый ?
ifstream abc (&quot;*.pas&quot;,ios::text); не работает, ибо у ios нет параметра text

Как считать файл до конца вместе '\n' ?
При помощи ifstream

Как побайтово считать Wav файл?
Так, чтобы у я мог с ним работать, а потом опять выгрузить его как wav файл?

Как правильно считать и записать в файл
Вот такие вот классы, как правильно записать, а затем считать из файла class Base { public:...

Подскажите как побайтно считать файл
Читаю файл побайтно seeker=fseek(olddbf,0, SEEK_SET); numread = fread(list, sizeof(char), 16,...

Как считать данные из файла и вывести в файл
Я сегодня написал 2 программы: Моё решение: #include &lt;iostream&gt; #include &lt;cmath&gt; using...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru