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

Вывод данных из файла в консоль

19.04.2020, 22:29. Показов 3484. Ответов 9

Дана задача ввести данные в файл или вывести данные из файла в виде таблицы, пользователю дается выбор в меню. Ввод я организовал, а вывести данные так, что бы их можно было поместить в таблицу не могу. Примерное содержание файла и вид таблицы прикрепил.

Код:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <fstream>
 
using namespace std;
 
int vvod();
int vivod();
void menu();
void line();
struct structure
{
    int acc_number;
    char full_name[150];
    double money;
    double percent;
    double rub_percent;
};
string path = "MyFile.txt";
int num;
 
int main()
{
    int value=0;
    while (value!=3)
    {
 
        menu();
        cin >> value;
        cout << endl;
        switch (value)
    {
        case 1: vvod(); break;
        case 2: vivod(); break;
        case 3: break;
        default: cout << "Error" << endl;
    }
    return  0;
}
}
 
void line()
{
    const int a=80;
    for (int i=0;i<a;i++)
    {
      cout << "-";
    }
}
void menu()
{
    cout << "Choose value:\n" << endl;
    cout << "1-Data input" << endl;
    cout << "2-Data output" << endl;
    cout << "3-Exit\n" << endl;
    cout << "Your choise: ";
}
int vvod()
{
    cout << "Enter a number of structure ";
    cin >> num; cout << endl;
    structure mass[num];
    for (int i=0; i<num; i++)
    {
        cout << "Enter account number#" <<i+1 <<"  ";
        cin >> mass[i].acc_number;
        cin.ignore(32767, '\n');
        cout << "Enter depositor full name  ";
        cin.getline(mass[i].full_name,sizeof(mass[i].full_name));
        cout << "Enter summ of money on deposit  ";
        cin >> mass[i].money;
        cout << "Enter percent  ";
        cin >> mass[i].percent;
        mass [i].rub_percent=mass[i].money*(mass[i].percent/100)+mass[i].money;
        cout << "Total:  ";
        cout << mass[i].rub_percent << endl;
        cout << endl;
    }
 
    ofstream fout;
    fout.open(path);
    if (!fout.is_open())
    {
        cout << "Error file opening";
    }
    else
    {
        for (int i=0;i<num;i++)
        {
            fout << mass[i].acc_number << endl;
            fout << mass[i].full_name << endl;
            fout << mass[i].money << endl;
            fout << mass[i].percent << endl;
            fout << mass[i].rub_percent << endl;
            fout << endl;
        }
    }
    fout.close();
    return  0;
}
int vivod()
{
ifstream fin (path);
fin.open(path);
if (!fin.is_open())
{
    cout << "Error file opening" << endl;
}
 
line();
cout << "|                |                       |           |          Total          |";
cout << "| Account number |       Full name       |   Money   |-------------------------|";
cout << "|                |                       |           |   Percent   |    RUB    |";
line();
 
 
 
return 0;
}
Миниатюры
Вывод данных из файла в консоль   Вывод данных из файла в консоль  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2020, 22:29
Ответы с готовыми решениями:

Вывод данных из файла в консоль
Здравствуйте! Такая проблема - не могу правильно вывести данные из файла в консоль, а именно:...

Считывание данных из файла и вывод их в консоль
Всем доброго времени суток. Прошу помощи в работе - Разработать программу, считывающую данные из...

Разбор данных из файла, формирование строки и вывод на консоль
собственно, задача такова: в файле содержится данные вида: 30.10,30.5 55.5,55.7 и тд. ...

Реализовать поиск файла в каталоге и вывод на консоль заданных атрибутов найденного файла
Приведите, пожалуйста, пример кода программы, которая ищет файлы, находящиеся в каталоге, и выдаёт...

9
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
19.04.2020, 22:31 2
Ну как минимум не делай endl после каждого поля. Ясно же, что они будут в раздельных строках.
0
1 / 1 / 0
Регистрация: 19.10.2019
Сообщений: 14
19.04.2020, 22:44  [ТС] 3
nmcf, Изначально думал записывать строки из файла в массив и выводить в консоль циклом
0
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
19.04.2020, 22:59 4
В файл можно и так.
0
Just Do It!
3377 / 1843 / 618
Регистрация: 23.09.2014
Сообщений: 5,835
20.04.2020, 11:58 5
Цитата Сообщение от sdvuhnog Посмотреть сообщение
а вывести данные так, что бы их можно было поместить в таблицу не могу
C++
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
#include <iomanip>
int vivod()
{   ifstream fin(path);
    if (!fin.is_open())
    {   cout << "Error file opening" << endl;
        return -1;
    }
 
    line();
    cout << "|                |                       |           |          Total          |\n";
    cout << "| Account number |       Full name       |   Money   |-------------------------|\n";
    cout << "|                |                       |           |   Percent   |    RUB    |\n";
    line();
    
    structure o;
    
    while(fin >> o.acc_number)
    {                        std::cout <<  "|" <<std::setw(15) << o.acc_number;
        fin >> o.full_name;  std::cout << " |" <<std::setw(22) << o.full_name;
        fin >> o.money;      std::cout << " |" <<std::setw(10) << o.money;
        fin >> o.percent;    std::cout << " |" <<std::setw(12) << o.percent;
        fin >> o.rub_percent;std::cout << " |" <<std::setw(10) << o.rub_percent;
        std::cout << " |" << std::endl;
    }
    fin.close();
    return 0;
}
0
1 / 1 / 0
Регистрация: 19.10.2019
Сообщений: 14
20.04.2020, 13:46  [ТС] 6
XLAT, Выводит только первые 4 записи из текстового файла и 3 из них некорректны (данные в файле такие же как и на прошлом скрине)
Миниатюры
Вывод данных из файла в консоль  
0
1 / 1 / 0
Регистрация: 19.10.2019
Сообщений: 14
20.04.2020, 13:57  [ТС] 7
Цитата Сообщение от sdvuhnog Посмотреть сообщение
4 записи
*5 записей
0
Just Do It!
3377 / 1843 / 618
Регистрация: 23.09.2014
Сообщений: 5,835
20.04.2020, 14:37 8
Лучший ответ Сообщение было отмечено sdvuhnog как решение

Решение

sdvuhnog,
замените этим:
C++
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
    ofstream fout;
    fout.open(path);
    if (!fout.is_open())
    {   cout << "Error file opening";
    }
    else
    {   for (int i=0; i<num; i++)
        {   fout << mass[i].acc_number << endl;
        
            for(char* c = mass[i].full_name; *c; c++)
            {   if(*c == ' ') *c = ',';
            }
            
            fout << mass[i].full_name << endl;
            fout << mass[i].money << endl;
            fout << mass[i].percent << endl;
            fout << mass[i].rub_percent << endl;
            fout << endl;
        }
    }
    fout.close();
    return  bd;
}
 
int vivod()
{   ifstream fin(path);
    if (!fin.is_open())
    {   cout << "Error file opening" << endl;
        return -1;
    }
 
    line();
    cout << "|                |                       |           |          Total          |\n";
    cout << "| Account number |       Full name       |   Money   |-------------------------|\n";
    cout << "|                |                       |           |   Percent   |    RUB    |\n";
    line();
    
    structure o;
    
    while(fin >> o.acc_number)
    {                        std::cout <<  "|" <<std::setw(15) << o.acc_number;
        fin >> o.full_name;
        for(char* c = o.full_name; *c; c++)
        {   if(*c == ',') *c = ' ';
        }
                             std::cout << " |" <<std::setw(22) << o.full_name;
        fin >> o.money;      std::cout << " |" <<std::setw(10) << o.money;
        fin >> o.percent;    std::cout << " |" <<std::setw(12) << o.percent;
        fin >> o.rub_percent;std::cout << " |" <<std::setw(10)  << o.rub_percent;
        std::cout << " |" << std::endl;
    }
    fin.close();
    return 0;
}
1
Just Do It!
3377 / 1843 / 618
Регистрация: 23.09.2014
Сообщений: 5,835
20.04.2020, 14:43 9
всё работает)
MyFile.txt
Код
23
Vasia,Pupkin
353
6
374.18

34
Asdf,Ivanovich,Ivanov
6
5
6.3
Вывод данных из файла в консоль
1
1 / 1 / 0
Регистрация: 19.10.2019
Сообщений: 14
20.04.2020, 15:12  [ТС] 10
XLAT, Спасибо, выручили
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2020, 15:12
Помогаю со студенческими работами здесь

Вывод из файла в консоль
Не получается вывести содержимое первого файла в консоль и полученное содержимое в консоль...

Вывод файла на консоль
Мне нужно, чтобы на консоль данные из файла выводились не в строку, а так как они расположены в...

Вывод строк на консоль из файла
Прошу помочь разобраться в WINAPI... Было задание: Обходя заданные каталоги, найдите самый...

Вывод бинарного файла на консоль
Имеется структура typedef struct { int n; char name; double price; ...

Вывод на консоль атрибута файла
Мне нужно присвоить файлу атрибут - системный. я вот сделал в проге, а как проверить не знаю...

Вывод строк в консоль из файла
Данный метод должен выводить из файла 15 строк, где GetSubject_1() принимает значение 1., при...


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

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

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