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

Как записать вывод в файл многократно - C++

Восстановить пароль Регистрация
 
Masai
5 / 5 / 1
Регистрация: 13.07.2014
Сообщений: 198
15.07.2014, 14:07     Как записать вывод в файл многократно #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for (int i = 0; i < 60; i ++){
    Tovar *a = Vvod (number, Names);
    cout << "\n";
    for (int i = 0; i < number; i ++){
        if (a[i].Price > 1000){
            Dollars = Dollars + a[i].Price;
        }
    }
    delete []a;
    cout << "Результат задания:\nСумма товаров, которые стоят выше 1000р. = " << Dollars << "\n\n\n\n\n";
    ofstream write_file ("D:\output.txt");
    write_file << Dollars << " ";
    }
(Виноват - не умею на форуме код размещать в спец.форму)

Я хочу провести некоторую статистику, чтоб определённое количество раз вывод программы записывался в файл, я это сделал, но проблема в том, что он перезаписывается каждый раз, в итоге в файле содержится не 60 выводов программы, а один - последний (т.е каждую итерацию он перезаписывается), как сделать чтоб он выводил именно как нужно?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2014, 14:07     Как записать вывод в файл многократно
Посмотрите здесь:

C++ Как записать битсет в файл?
C++ Используя ввод-вывод в стиле С создать файл и записать в него структурированные данные
C++ Как записать картинку в файл
C++ создать файл 1.part и записать в него первые x элементов массива. После чего, создать второй файл 2.part, куда записать оставшиеся в массиве элементы.
Как записать результат в файл C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 869
15.07.2014, 14:13     Как записать вывод в файл многократно #2
Masai, файловый ввод/вывод
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
15.07.2014, 14:29     Как записать вывод в файл многократно #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
строка 11
Цитата Сообщение от Masai Посмотреть сообщение
ofstream write_file ("D:\output.txt");
Эту строку надо вынести вперед - перед циклом.
А после цикла надо
C++
1
 write_file.close();
Masai
5 / 5 / 1
Регистрация: 13.07.2014
Сообщений: 198
15.07.2014, 14:41  [ТС]     Как записать вывод в файл многократно #4
zss - спасибо! Не подскажите как оформлять код как Вы вот отредактировали?

И проблема - я сделал как Вы сказали, но ошибка на строке - write_file.close(0);
Ошибка: error: 'write_file' was not declared in this scope|

Всё сделал правильно,
Мейн{
...
ofstream write_file

Цикл

write_file.close(0);
...
}

Добавлено через 5 минут
Виноват! Перепутал и ofstream всё же был внутри цикла!

Теперь ошибка другая с тем же самым close.

error: no matching function for call to 'std::basic_ofstream<char>::close(int)'|
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
15.07.2014, 14:43     Как записать вывод в файл многократно #5
Ноль внутри вызова close() не надо, это опечатка
Masai
5 / 5 / 1
Регистрация: 13.07.2014
Сообщений: 198
15.07.2014, 14:45  [ТС]     Как записать вывод в файл многократно #6
Да, ровно за минуту до Вашего ответа методом тыка получилось определить этот момент. =)

Ещё раз спасибо, был бы признателен Вам если бы в личку (например) просветили по поводу как оформлять вставки кода на этом форум корректно.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
15.07.2014, 18:56     Как записать вывод в файл многократно #7
Цитата Сообщение от Masai Посмотреть сообщение
как оформлять вставки кода
Над кодом есть кнопочки. В том числе "С++".

Как работать в редакторе сообщений:
http://www.cyberforum.ru/about-forum/thread103521.html
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.07.2014, 20:20     Как записать вывод в файл многократно
Еще ссылки по теме:

Низкоуровневый ввод-вывод. Как с помощью функции write записать в файл тип int? C++
C++ Как записать класс в файл?
Как записывать в текстовый файл, многократно C++

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

Или воспользуйтесь поиском по форуму:
Masai
5 / 5 / 1
Регистрация: 13.07.2014
Сообщений: 198
15.07.2014, 20:20  [ТС]     Как записать вывод в файл многократно #8
Спасибо! Пробую:
П.С - отлично!
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
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <fstream>
#include <stdio.h>.
 
 
using namespace std;
//          Задача 7.21
// Известны данные о стоимости каждого товара из группы. Найти общую
// Стоимость тех товаров, которые стоят дороже 1000р.
 
struct Tovar{
 
    public : int Price;
 
};
 
Tovar* Vvod (int number, string Name[]){
 
    Tovar *spisok = new Tovar [number];
 
    for (int i = 0; i < number; i++){
        cout << "Введите цену " << i + 1 << " товара: ";
        spisok[i].Price = rand() % 1000 + 300;
        if (i < 10){
            cout << Name[i] << " - " << spisok[i].Price << endl;
            }
        else{
            cout << " - " << spisok[i].Price << endl;}
        }
    return spisok;
    }
int main()
{
    srand( time( NULL ) );
    int number = 100;
    int Dollars = 0;
    string Names [] = {"Хлеб", "Водка" , "Помидоры" , "Квас" , "Макароны" , "Устрицы" , "Вода" , "Витамины" , "Колбаса" , "Мясо"};
    system("chcp 1251 >> nul");
    cout << "Введите сколько товаров в наборе: ";
    ofstream write_file ("D:\output.txt");
    for (int i = 0; i < 60; i ++){
    Dollars = 0;
    Tovar *a = Vvod (number, Names);
    cout << "\n";
    for (int i = 0; i < number; i ++){
        if (a[i].Price > 1000){
            Dollars = Dollars + a[i].Price;
        }
    }
    delete []a;
    cout << "Результат задания:\nСумма товаров, которые стоят выше 1000р. = " << Dollars << "\n\n\n\n\n";
 
    if (i == 5 || i == 10 || i == 15 || i == 20 || i == 25 || i == 30 || i == 35 || i == 40 || i == 45 || i == 50 || i == 55 || i == 60){
       write_file << Dollars << "     " << "    \n";
    }
    else { write_file << Dollars << "    " << "    ";}
    cout << "\n\n\n";
    }
    write_file.close();
}
Yandex
Объявления
15.07.2014, 20:20     Как записать вывод в файл многократно
Ответ Создать тему
Опции темы

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