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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nikoys
26 / 26 / 6
Регистрация: 29.12.2010
Сообщений: 90
#1

Вывод в файл с ограничением числа - C++

24.09.2012, 02:53. Просмотров 411. Ответов 2
Метки нет (Все метки)

Доброй всем ночи! Возникла задача в автоматизированном тесте: должно считаться неизвестное количество строк с числами и над ними выполнится операция. В результате операции должно получится число, не большее за единицу и большее за нуль, записанное с шестью знаками после точки, вроде 1.000000, 0.972222 и т.д. Причем подразумевается округление имеющегося числа.
Меня интересует, как можно в файл вывести такое ограниченное число (если можно, то с названием функции хоть какой-то пример применения, а то искать их применение сложно, как например я гуглил snprintf сейчас). При чем не просто вывести, но и каждое новое число выводить в новую строку (совершать конец строки, т.е.).
Если же есть метод через cin считать имеющееся, я тоже буду не против, но у тестов ограничение в 1 секунду компиляции, после чего выдается ошибка исчерпывания лимита времени.

В общем, помогите, кто чем может по этому техническому моменту, был бы очень рад.

Добавлено через 3 минуты
Что новая строка как каретка работает и в printf, уже понял. Теперь интересует только округление.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2012, 02:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод в файл с ограничением числа (C++):

Дан файл F, компонентами которого являются целые числа. Получить в файле G все нечетные числа, входящие в файл F. Числа в файле G должны следовать - C++
Помогите доздать с++) вот задание: Дан файл F, компонентами которого являются целые числа. Получить в файле G все нечетные числа, входящие ...

Файл содержит числа и слова. Сформулировать файл, содержащий только числа. - C++
Дан файл,строки которого могут содержать и числа и слова. Сформулировать из него другой файл,содержащий только числа. ...

Вывод суммы в файл (файловый ввод/вывод) - C++
Добрый день! Я пытался написать программу, которая должна вводить данные из файла №1, потом вычислять их сумму и полученное значение...

Шаблон с ограничением - C++
Всем привет! Не знаю как создать класс с шаблоном, параметрами которого могли быть только классы, которые наследуют другой определенный...

Ввод двузначного числа и вывод обратного числа - C++
Помогите пожалуйста сделать( Арифметика: Z=4 cosα2 ⋅cos52 α⋅cos 4α Текст: Составить программу, в которая запрашивает ввод...

Printf с ограничением на символы в cout - C++
Подскажите как корректно поменять printf на cin cout typedef struct { double re; double im; }complex; ... void...

2
kazak
3038 / 2359 / 157
Регистрация: 11.03.2009
Сообщений: 5,405
Завершенные тесты: 1
24.09.2012, 07:26 #2
Цитата Сообщение от Nikoys Посмотреть сообщение
Что новая строка как каретка работает и в printf, уже понял. Теперь интересует только округление.
Вместе со спецификатором укзывайте точность.
C
1
printf("Sum = %.6f\n", sum);
Для cout'а есть манипулятор setprecision
C++
1
cout << setprecision(6) << sum << endl;
0
Nikoys
26 / 26 / 6
Регистрация: 29.12.2010
Сообщений: 90
24.09.2012, 09:06  [ТС] #3
kazak, я попробовал схему с потоковым выводом, outf.setf|outf.precision. Можно ли такое делать? Вот исходник:

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
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main()
{
    string namefile1 = "input.txt";
    string namefile2 = "output.txt";
    ifstream inf(namefile1.c_str());
    ofstream outf(namefile2.c_str());
    float a, n;
    outf.setf(ios::fixed, ios::floatfield);
    outf.precision(6);
    while (inf >> n)
    {
        a = 1 - (60-n)*(60-n)/3600;
        outf << a << endl;
 
    }
    inf.close();
    outf.close();
    return 0;
}
Заранее спасибо.

Добавлено через 25 минут
Реализовал следующим образом:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
using namespace std;
 
int main()
{
    float a, n;
    cout.setf(ios::fixed,ios::floatfield);
    cout.precision(6);
    while ((cin >> n) != 0)
    {
        a = 1 - (60-n)*(60-n)/3600;
        cout << a << endl;  
    }
    return 0;
}
Всем спасибо, вопрос решен
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2012, 09:06
Привет! Вот еще темы с ответами:

Файл: Форматированный вывод текста в файл - C++
#include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;io.h&gt; int main() { double x1, x2, y1, y2, l,si,co; int ku, kuz, kuf, kel; ...

Дан целочисленный файл А. Записать в файл В все кратные трём числа из А - C++
Дан целочисленный файл А. Записать в файл В все кратные трём числа из А. Вот что я написал: #include &lt;cstdlib&gt; #include &lt;iostream&gt; ...

Файл: Создать файл и записать в него обратные натуральные числа 1,1/2,...1/n. - C++
Помогите подготовиться к отчету.Создать файл и записать в него обратные натуральные числа 1,1/2,...1/n.Вывести на экран все компоненты...

Файл: Как сделать так, чтобы числа в файл были прописаны не рандомно? - C++
Здраствуйте, дан код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru