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

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

Восстановить пароль Регистрация
 
Vladimir_N-sk
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 4
29.06.2015, 10:29     Как увеличить ширину (разрядность) оператора >> ? #1
Для преобразования типов используется такая конструкция

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 разрядов (цифр) из строковых переменных, а надо чтобы все попадали.
Где это устанавливается?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Max Dark
В поиске работы
 Аватар для Max Dark
1546 / 1399 / 501
Регистрация: 09.10.2013
Сообщений: 3,185
Записей в блоге: 8
Завершенные тесты: 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
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 устанавливает кол-во знаков после запятой, а это не совсем то что нужно по условию.
nmcf
4297 / 3718 / 1251
Регистрация: 14.04.2014
Сообщений: 14,540
29.06.2015, 13:18     Как увеличить ширину (разрядность) оператора >> ? #4
Причём тут cin? Сколько введёшь столько и будет, если поместится.
Цитата Сообщение от Vladimir_N-sk Посмотреть сообщение
std::setprecision устанавливает кол-во знаков после запятой
А что нужно-то? Пример.
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 совпадали!
nmcf
4297 / 3718 / 1251
Регистрация: 14.04.2014
Сообщений: 14,540
29.06.2015, 16:03     Как увеличить ширину (разрядность) оператора >> ? #6
Ну делай с setprecision(15), как Cra3y, показал.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2015, 16:25     Как увеличить ширину (разрядность) оператора >> ?
Еще ссылки по теме:

C++ Алгоритмы поиска кратчайших путей в ширину и двунаправленный в ширину
Увеличить размер выводимого текста (увеличить буквы) функции outtextxy C++
Придумайте простую программу с использованием условного оператора IF и оператора switch C++

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

Или воспользуйтесь поиском по форуму:
Vladimir_N-sk
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 4
29.06.2015, 16:25  [ТС]     Как увеличить ширину (разрядность) оператора >> ? #7
Цитата Сообщение от nmcf Посмотреть сообщение
Ну делай с setprecision(15), как Cra3y, показал.
Ага, сработало. Чет я не так этот setprecision понимал.
Yandex
Объявления
29.06.2015, 16:25     Как увеличить ширину (разрядность) оператора >> ?
Ответ Создать тему
Опции темы

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