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

Вывести числа со специальным форматом - C++

Восстановить пароль Регистрация
 
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
24.08.2013, 21:35     Вывести числа со специальным форматом #1
Всем привет!
Есть задание: "Напишите программу, считывающую из файла числа, разделенные пробелами, и выводящую в другой файл числа, используя научный формат и точность, равную восьми в четырех полях по двадцать символов в строке".
Что хотят в этом задании? Ведь не вместить 4 поля в одну строку из 20 символов (если точность 8 - это не вмещается).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2013, 21:35     Вывести числа со специальным форматом
Посмотрите здесь:

Даны два целых числа M но N. Вывести все целые числа из промежутка [M,n] C++
Даны два целых числа A и B (A < B). Вывести в порядке убывания все це-лые числа, расположенные между A и B (не включая числа A и B), а также количеств C++
подскажите: как вывести на экран числа от 0 до 20.... и еще одна: вывести все четные числа от 0 до 20... C++
C++ Сортировка методом каскадного слияния со специальным распределением
C++ Дано два числа А и В (А<В). Вывести в порядке увеличения все целые числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
24.08.2013, 21:50     Вывести числа со специальным форматом #2
наверное в задании требуется получить таблицу с 4 столбцами ширина которых равна 20
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <fstream>
#include <iomanip>
 
int main()
{
    std::ifstream file("values.txt");
    std::ofstream result("result.txt");
    double value;
    int i = 0;
    result << std::setprecision(8);
    result << std::fixed;
    while (file >> value) {
        result << std::setw(20) << value;
        if (++i % 4 == 0) result << std::endl;
    }
    return 0;
}
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
24.08.2013, 21:52  [ТС]     Вывести числа со специальным форматом #3
Olivеr, но ведь сказано, что строки длиной 20 символов.

Write a program that reads a file of whitespace-separated numbers and outputs a file of numbers using scientific format and precision 8 in four fields of 20 characters per line.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
24.08.2013, 21:52     Вывести числа со специальным форматом #4
Dani, ну так да, каждая ячейка длиной 20, туда впихнуть число с точностью 8 знаков
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
24.08.2013, 21:53  [ТС]     Вывести числа со специальным форматом #5
Olivеr, ячейка - это поле же, а строка - из ячеек.

Добавлено через 49 секунд
Цитата Сообщение от Olivеr Посмотреть сообщение
result << std::fixed;
scientific
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
24.08.2013, 21:55     Вывести числа со специальным форматом #6
Цитата Сообщение от Dani Посмотреть сообщение
scientific
в смысле экспоненциальный формат?
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
24.08.2013, 21:56  [ТС]     Вывести числа со специальным форматом #7
Цитата Сообщение от Dani Посмотреть сообщение
научный формат
дословно "научный".
Но дело не в этом (потому и смайлик )
Все же не могу понять про эти ячейки.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
24.08.2013, 22:07     Вывести числа со специальным форматом #8
1 2 3 4 5 6 7 8 547359.34573458345864583
1.00000000e+000 2.00
000000e+000 3.000000
00e+000 4.00000000e+
000 5.00000000e+000
6.00000000e+000 7.00
000000e+000 8.000000
00e+000 5.47359346e+
005
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
#include <iostream>
#include <fstream>
#include <sstream>
#include <iomanip>
 
int main()
{
    std::ifstream file("values.txt");
    std::ofstream result("result.txt");
    std::stringstream ss;
    double value;
    ss << std::setprecision(8);
    ss << std::scientific;
    while (file >> value)
        ss << value << ' ';
    char c;
    int i = 0;
    ss << std::noskipws;
    while (ss >> c) {
        result << c;
        if (++i % 20 == 0)
            result << std::endl;
    }
    return 0;
}
Добавлено через 13 секунд
может так?
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
24.08.2013, 22:09  [ТС]     Вывести числа со специальным форматом #9
Может быть, но какие тут где 4 поля?
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
24.08.2013, 22:16     Вывести числа со специальным форматом #10
а так?
Изображения
 
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2013, 23:12     Вывести числа со специальным форматом
Еще ссылки по теме:

Форматом записи в файл C++
Заданы числа x и y. Если их сумма положительная, вывести на экран эти числа, иначе вывести их разницу C++
Вывести содержимое файла на экран в соответствии с заданным форматом C++

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

Или воспользуйтесь поиском по форуму:
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
24.08.2013, 23:12  [ТС]     Вывести числа со специальным форматом #11
Olivеr, Using scientific and fixed formats, a programmer can control exactly how much
space a value takes up on output. That's clearly useful for printing tables, etc.
The equivalent mechanism for integer values is called fields. You can specify exactly how
many character positions an integer value or string value will occupy using the "set field width"
manipulator setw().
Это вряд ли столбцы, просто число в строку.

Добавлено через 47 минут
Olivеr, скорее всего это имеется в виду длина этого field = 20, т.к. сказано, что 4 field в строке должно быть. А этот размер как-раз в точности влазит в строку в консоли (ширина стандартная, не менял).
Спасибо за помощь!
Yandex
Объявления
24.08.2013, 23:12     Вывести числа со специальным форматом
Ответ Создать тему
Опции темы

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