2013-12-04 9 views
0

Я могу установить точность cout продукции с использованиемПолучить точность соиЬ

cout.precision(precision_value); 

, как я могу получить значение точности, который используется cout уже? Невозможно найти другую связанную функцию в coutdescription.

Связанная с этим проблема связана с тем, как изменить значение точности cout только для некоторой части кода (поэтому после этого нужно будет сбрасывать точное точное значение).

I судимый:

//save original cout flags 
std::ios_base::fmtflags coutFlags = cout.flags(); 

cout.precision(1); 
cout.setf(ios::fixed); 

// code 

cout.flags(coutFlags); 

но doens't работы.

+0

почему бы не использовать переменную и изменить его каждый тим? – Infested

+0

http://en.cppreference.com/w/cpp/io/ios_base/precision –

+0

'cout.setf (ios :: fixed);' перезаписывает *** все *** флаги, а не только флаг интереса , Недавно я совершил ту же ошибку: [istringstream не соблюдает базу?] (Http://stackoverflow.com/q/33708337). – jww

ответ

7

Функция overloaded. Обе перегрузки возвращают точность, которая была установлена ​​перед вызовом функции. cout.precision() может быть тем, что вы хотите запросить.

Чтобы сохранить его и установить его позже:

auto old_precision = cout.precision(temp_precision); 
// do stuff 
cout.precision(old_precision); 
+0

О, я полностью пропустил возвращаемое значение. Ищу другую функцию. Благодарю. – klm123

Смежные вопросы