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

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

Войти
Регистрация
Восстановить пароль
 
Vladimir_N-sk
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 4
#1

Как увеличить ширину (разрядность) оператора >> ? - C++

29.06.2015, 10:29. Просмотров 268. Ответов 6
Метки нет (Все метки)

Для преобразования типов используется такая конструкция

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
#include <string.h>
#include <cstring>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <sstream>
#include <iomanip>
 
 
int main(int argc, char **argv)
{
 
 using namespace std;
 
 std::stringstream s;
 std::stringstream ss;
 std::stringstream sss;
 
    s <<  "12.123456";
    ss <<  "12345.123";
    sss <<  "123456.123";
 
 
    double k, l, m;
    
    s >> l;
    ss >> k;
    sss >> m;
    
    std::cout << "s:"<< s.str() << "  l:"<< l <<std::endl;
    std::cout << " ss:"<< ss.str() << "  k:"<< k <<std::endl;
    std::cout << " sss:"<<sss.str()<< " m:" << m << std::endl;
 
    
    return 0;
}
в результате имею вывод

s:12.123456 l:12.1235
ss:12345.123 k:12345.1
sss:123456.123 m:123456


т.е. в переменные типа double попадает только 6 разрядов (цифр) из строковых переменных, а надо чтобы все попадали.
Где это устанавливается?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2015, 10:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как увеличить ширину (разрядность) оператора >> ? (C++):

Как определить разрядность .EXE или .DLL? - C++
Как определить разрядность .EXE или .DLL? WINAPI функций вроде для етого нет. Я делаю сортировщик dll файлов. Остановился на том, што...

Алгоритмы поиска кратчайших путей в ширину и двунаправленный в ширину - C++
Реализовать алгоритм поиска кратчайшего пути. Двунаправленный поиск в ширину. Вот есть 2 алгоритма поиска в ширину. ...

Увеличить размер выводимого текста (увеличить буквы) функции outtextxy - C++
Здравствуйте. Я вывожу текст с помощью функции Функция outtextxy. Можно ли как-нибудь увеличить размер выводимого текста? (увеличить буквы)

Избыточное копирование объекта при реализации оператора умножения и оператора присваивания - C++
Есть класс работы с матрицами. Есть операция умножения матриц, описанная как оператор класса. В данном коротком примере я просто моделирую...

Придумайте простую программу с использованием условного оператора IF и оператора switch - C++
Пожалуйста, придумайте простую программу с использованием: условного оператора IF и оператора switch . Эти программы должны быть...

Неправильная работа оператора присваивания после работы оператора суммирования - C++
Доброго времени суток. У меня есть класс вектор class TVector {//ewde public: TVector(); //Vector(Vector &amp;v); TVector(int...

6
Max Dark
шКодер самоучка
1851 / 1651 / 603
Регистрация: 09.10.2013
Сообщений: 3,678
Записей в блоге: 6
Завершенные тесты: 2
29.06.2015, 11:10 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <iomanip>
#include <ios>
 
using namespace std;
 
int main() {
    double x = 12345.67890;
    std::cout << std::setprecision(15);
    std::cout << x << std::endl;
    std::cout << std::fixed;
    std::cout << x << std::endl;
    return 0;
}
std::setprecision
std::fixed
1
Vladimir_N-sk
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 4
29.06.2015, 11:24  [ТС] #3
Цитата Сообщение от Cra3y Посмотреть сообщение
std::setprecision
std::fixed
Это прекрасно, только эти модификаторы работают для << (cout) и не работают для cin (>>).
К тому же, как я понял, std::setprecision устанавливает кол-во знаков после запятой, а это не совсем то что нужно по условию.
0
nmcf
5536 / 4846 / 1643
Регистрация: 14.04.2014
Сообщений: 19,657
29.06.2015, 13:18 #4
Причём тут cin? Сколько введёшь столько и будет, если поместится.
Цитата Сообщение от Vladimir_N-sk Посмотреть сообщение
std::setprecision устанавливает кол-во знаков после запятой
А что нужно-то? Пример.
0
Vladimir_N-sk
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 4
29.06.2015, 13:27  [ТС] #5
Цитата Сообщение от nmcf Посмотреть сообщение
Причём тут cin? Сколько введёшь столько и будет, если поместится.

А что нужно-то? Пример.
Цитата Сообщение от nmcf Посмотреть сообщение
Причём тут cin? Сколько введёшь столько и будет, если поместится.
Цитата Сообщение от Vladimir_N-sk Посмотреть сообщение
std::setprecision устанавливает кол-во знаков после запятой
А что нужно-то? Пример.
Пример есть в 1-м сообщении.
Нужно чтобы был вывод

s:12.123456 l:12.123456
ss:12345.123 k:12345.123
sss:123456.123 m:123456.123

т.е. чтобы значений строковой переменной и перменной double совпадали!
0
nmcf
5536 / 4846 / 1643
Регистрация: 14.04.2014
Сообщений: 19,657
29.06.2015, 16:03 #6
Ну делай с setprecision(15), как Cra3y, показал.
1
Vladimir_N-sk
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 4
29.06.2015, 16:25  [ТС] #7
Цитата Сообщение от nmcf Посмотреть сообщение
Ну делай с setprecision(15), как Cra3y, показал.
Ага, сработало. Чет я не так этот setprecision понимал.
0
29.06.2015, 16:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2015, 16:25
Привет! Вот еще темы с ответами:

Вызов прегруженного оператора вывода в поток из аналогичного оператора - C++
Программирую в c9.io с g++ получается тоже самое. Элементами стека(pointList) являются стеки(list) для которых уже определен оператор...

Сравнить два целых числа, не используя условного оператора, оператора выбора и так же символов сравнения - C++
Добрый день уважаемые программисты, хотелось, чтобы вы помогли мне в решении одной задачи, а именно подсказали идею решения. Задача...

Как увеличить ширину блока - Joomla
Здравствуйте. По адресу http://faridos.com/test/index.php, нужно увеличить ширину блока &quot;Welcome to JSN Metro&quot;. Можно ли это сделать? ...

Как увеличить ширину среднего столбца - Joomla
Доброго дня всем! Помогите увеличить средний столбец на сайте http://klsad.ru использовал шаблон...


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

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

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