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

Вывести несколько строк в файл - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создайте общий массив, из данного массива и точно такого же но другого размера, и отсортируйте по уменьшению. http://www.cyberforum.ru/cpp-beginners/thread443580.html
Создайте общий массив, из данного массива и точно такого же но другого размера, и отсортируйте по уменьшению.
C++ Определите сумму элементов массива, расположенных после элемента равного минимуму. Определите сумму элементов массива, расположенных после элемента равного минимуму. http://www.cyberforum.ru/cpp-beginners/thread443578.html
C++ Отсортируйте элементы массива по возрастанию их модуля
Отсортируйте элементы массива по возрастанию их модуля
Определите количество элементов массива равных нулю. C++
1. Определите количество элементов массива равных нулю.
C++ Оператор switch http://www.cyberforum.ru/cpp-beginners/thread443574.html
Оператор switch: 1)Написать программу, где ожидается ввод символа с клавиатуры, после чего определяется, является ли этот символ буквой, цифрой или специальным символом. 2). Написать программу, которая ждет ввода буквы русского алфавита и в зависимости от этого определяет гласная или согласная. Если согласная, то звонкая или глухая. Помогите с решением))
C++ Какие компонентные функции отвечают за создание объекта? Какие компонентные функции отвечают за создание объекта? Такой вопрос, может кто ответить?:) я не могу найти нигде...:( подробнее

Показать сообщение отдельно
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.02.2012, 20:49     Вывести несколько строк в файл
Цитата Сообщение от Johnlion Посмотреть сообщение
Программа работает нормально, но она выводит только одну строку в выходной файл. А если там будет 2 минимума (одинаковых), то выводит первый попавшийся. Как нужно изменить вывод в файл, чтобы выводило все минимумы построчно?
Создайте массив структур vyhod. Сделайте счетчик. Если текущая запись меньше минимальной, то обнуляйте счетчик и пишите в нулевой элемент arr, где arr - массив из vyhod. Если равна минимальному значению - пишите в arr[count++], где count - счетчик. Если больше - пропускаете.
В конце выводите в цикле элементы [0; count).

Добавлено через 48 минут
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
int counter=0;            /* количество записей в таблице */
while(!input.eof())
{
    input >> table[counter].name >> table[counter].god_40 >> table[counter].god_50 >> table[counter].god_55 >> table[counter].god_58;
    counter++;
}
min = (table[0].god_55-table[0].god_40)*100/table[0].god_40;
unsigned count = 0;
arr[count].prirost = table[0].god_50-table[0].god_40;
strcpy(arr[count++].name, table[0].name);
for (int i=1; i<counter; i++)
{
    float tmp = (table[i].god_55 - table[i].god_40) * 100. / table[i].god_40;
    if (tmp < min)
    {
        min = tmp;
        count = 0;
        arr[count].prirost = table[i].god_50 - table[i].god_40;
        strcpy(arr[count++].name, table[i].name);
    }
    else if(tmp == min)
    {
        arr[count].prirost = table[i].god_50 - table[i].god_40;
        strcpy(arr[count++].name, table[i].name);
    }
}
for(int i = 0; i < count; ++i)
    output << arr[i].name << ' ' << arr[i].prirost << std::endl;
Если пишете на С++ имеет смысл глянуть в сторону классов(со скрытыми данными и открытыми методами) и std::string вместо char[].
 
Текущее время: 13:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru