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

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

Войти
Регистрация
Восстановить пароль
 
Dani
1264 / 622 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
#1

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

24.08.2013, 21:35. Просмотров 495. Ответов 10
Метки нет (Все метки)

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

C++ вывести на экран числа,вот по примеру ,там числа и знаки изменить надо
C++ Сортировка методом каскадного слияния со специальным распределением
Вывести все числа от 1 до заданного натурального числа n (рекурсия) C++
Форматом записи в файл C++
C++ Классы. Вывести значение числа цифр в дробной части числа
С помощью рекурсии вывести все числа от 1 до введенного пользователем числа k C++
Вывести содержимое файла на экран в соответствии с заданным форматом C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
1264 / 622 / 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
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
24.08.2013, 21:52     Вывести числа со специальным форматом #4
Dani, ну так да, каждая ячейка длиной 20, туда впихнуть число с точностью 8 знаков
Dani
1264 / 622 / 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
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
24.08.2013, 21:55     Вывести числа со специальным форматом #6
Цитата Сообщение от Dani Посмотреть сообщение
scientific
в смысле экспоненциальный формат?
Dani
1264 / 622 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
24.08.2013, 21:56  [ТС]     Вывести числа со специальным форматом #7
Цитата Сообщение от Dani Посмотреть сообщение
научный формат
дословно "научный".
Но дело не в этом (потому и смайлик )
Все же не могу понять про эти ячейки.
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
1264 / 622 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
24.08.2013, 22:09  [ТС]     Вывести числа со специальным форматом #9
Может быть, но какие тут где 4 поля?
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     Вывести числа со специальным форматом
Еще ссылки по теме:

Вывести на экран сначала числа < 0, затем числа > 0 в порядке их ввода. Использовать очередь C++
Вывести все числа до заданного числа, которые делятся на каждую свою цифру. C++
Строка: Проверить, является ли заданный символ буквой, числом или специальным символом? C++
Ввести два числа, а вывести ряд от первого числа до второго C++
C++ Вывести числа двухмерного массива меньше введенного числа

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

Или воспользуйтесь поиском по форуму:
Dani
1264 / 622 / 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     Вывести числа со специальным форматом
Ответ Создать тему
Опции темы

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