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

Файловый ввод-вывод в задаче - C++

Восстановить пароль Регистрация
 
CHELOVEKPAUK
 Аватар для CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
04.09.2013, 21:53     Файловый ввод-вывод в задаче #1
Не понимаю как составить вывод данных из файла в задаче (см.ниже), я вообще запутался с вводом выводом, помогите растолковать.
Если cout (ostream) выводит текст, почему тогда объект fout (ofstream 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
#include <iostream>
#include <fstream>
#include <Windows.h>
#include <string>
 
using namespace std;
 
#define rus setlocale(LC_ALL,"rus");SetConsoleCP(1251);SetConsoleOutputCP(1251);
 
struct donation
{
    string name; 
    int amount;
};
 
void main()
{
    rus;
    ofstream fout;
    ifstream fin;
 
    fout.open("text.txt");
    fin.open("text.txt");
 
    short number_patrons; 
    short i = 0;
    short j = 0;
    short a = 0;
 
    cout << "Введите количество меценатов: ";
 
    cin >> number_patrons;
 
    fout << number_patrons << endl;
 
    donation* patrons = new donation[number_patrons];
 
    for (i; i < number_patrons; i++)
    {
        cout << "\nВведите имя мецената: ";
        cin.get();
        getline(cin,patrons[i].name);
        fout << patrons[i].name << endl;
        cout << "\nВведите сумму пожертвования: ";
        cin >> patrons[i].amount;
        fout << patrons[i].amount << endl;
    }
    
    cout << "\nGrand Patrons:\n\n";
    for (i = 0; i < number_patrons; i++)
    {
        if (patrons[i].amount > 10000)
            cout << patrons[i].name << " " << patrons[i].amount << endl;
        else
            j++;
    }
    if (j == number_patrons)
        cout << "none\n";
    
    cout << "\nPatrons:\n\n";
    for (i = 0; i < number_patrons; i++)
    {
        if (patrons[i].amount < 10000)
            cout << patrons[i].name << " " << patrons[i].amount << endl;
        else
            a++;
    }
    if (a == number_patrons)
        cout << "none\n";
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2013, 21:53     Файловый ввод-вывод в задаче
Посмотрите здесь:

C++ Файловый ввод-вывод.
C++ Файловый ввод / вывод
Файловый ввод/вывод в С++ C++
Файловый ввод/вывод C++
Файловый ввод-вывод C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ovner
7 / 7 / 0
Регистрация: 06.10.2012
Сообщений: 140
04.09.2013, 22:05     Файловый ввод-вывод в задаче #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
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
#include <iostream>
#include <fstream>
#include <Windows.h>
#include <string>
 
using namespace std;
 
#define rus setlocale(LC_ALL,"rus");SetConsoleCP(1251);SetConsoleOutputCP(1251);
 
struct donation
{
    string name; 
    int amount;
};
 
void main()
{
    rus;
    ofstream fout;
    ifstream fin;
 
    fout.open("text1.txt", ios_base::app);
    fin.open("text.txt");
 
    short number_patrons; 
    short i = 0;
    short j = 0;
    short a = 0;
 
    cout << "Введите количество меценатов: ";
 
    cin >> number_patrons;
 
    fout << number_patrons << endl;
 
    donation* patrons = new donation[number_patrons];
 
    for (i; i < number_patrons; i++)
    {
        cout << "\nВведите имя мецената: ";
        cin.get();
        getline(cin,patrons[i].name);
        fout << patrons[i].name << endl;
        cout << "\nВведите сумму пожертвования: ";
        cin >> patrons[i].amount;
        fout << patrons[i].amount << endl;
    }
    
    cout << "\nGrand Patrons:\n\n";
    for (i = 0; i < number_patrons; i++)
    {
        if (patrons[i].amount > 10000)
            cout << patrons[i].name << " " << patrons[i].amount << endl;
        else
            j++;
    }
    if (j == number_patrons)
        cout << "none\n";
    
    cout << "\nPatrons:\n\n";
    for (i = 0; i < number_patrons; i++)
    {
        if (patrons[i].amount < 10000)
            cout << patrons[i].name << " " << patrons[i].amount << endl;
        else
            a++;
    }
    if (a == number_patrons)
        cout << "none\n";
    fout.close();
    fin.close();
    system("pause");
}
А так?
CHELOVEKPAUK
 Аватар для CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
04.09.2013, 22:29  [ТС]     Файловый ввод-вывод в задаче #3
Цитата Сообщение от ovner Посмотреть сообщение
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
#include <iostream>
#include <fstream>
#include <Windows.h>
#include <string>
 
using namespace std;
 
#define rus setlocale(LC_ALL,"rus");SetConsoleCP(1251);SetConsoleOutputCP(1251);
 
struct donation
{
    string name; 
    int amount;
};
 
void main()
{
    rus;
    ofstream fout;
    ifstream fin;
 
    fout.open("text1.txt", ios_base::app);
    fin.open("text.txt");
 
    short number_patrons; 
    short i = 0;
    short j = 0;
    short a = 0;
 
    cout << "Введите количество меценатов: ";
 
    cin >> number_patrons;
 
    fout << number_patrons << endl;
 
    donation* patrons = new donation[number_patrons];
 
    for (i; i < number_patrons; i++)
    {
        cout << "\nВведите имя мецената: ";
        cin.get();
        getline(cin,patrons[i].name);
        fout << patrons[i].name << endl;
        cout << "\nВведите сумму пожертвования: ";
        cin >> patrons[i].amount;
        fout << patrons[i].amount << endl;
    }
    
    cout << "\nGrand Patrons:\n\n";
    for (i = 0; i < number_patrons; i++)
    {
        if (patrons[i].amount > 10000)
            cout << patrons[i].name << " " << patrons[i].amount << endl;
        else
            j++;
    }
    if (j == number_patrons)
        cout << "none\n";
    
    cout << "\nPatrons:\n\n";
    for (i = 0; i < number_patrons; i++)
    {
        if (patrons[i].amount < 10000)
            cout << patrons[i].name << " " << patrons[i].amount << endl;
        else
            a++;
    }
    if (a == number_patrons)
        cout << "none\n";
    fout.close();
    fin.close();
    system("pause");
}
А так?
А где вывод информации из файла?
ovner
7 / 7 / 0
Регистрация: 06.10.2012
Сообщений: 140
04.09.2013, 22:31     Файловый ввод-вывод в задаче #4
Непонял что тебе надо? Записать информацию в файл, или считать инфу из файла?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.09.2013, 00:34     Файловый ввод-вывод в задаче #5
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
Если cout (ostream) выводит текст, почему тогда объект fout (ofstream fout) наоборот вводит текстовую информацию? Эти же оба объекта созданы для вывода информации. Почему все наоборот? Так и должно быть?
cout выводит данные из кода на консоль, fout выводит (записывает) данные из кода в файл. Вывод (запись) - это помещение данных из кода в поток (консольный, файловый). Ввод (чтение) - это извлечение данных из потока (консольного, файлового) в код.
Yandex
Объявления
05.09.2013, 00:34     Файловый ввод-вывод в задаче
Ответ Создать тему
Опции темы

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