std::setbase
Материал из cppreference.com
![]() | Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
Определено в заголовочном файле <iomanip> | ||
/*unspecified*/ setbase(int base ); | ||
При использовании в выражении out << setbase(base) или in >> setbase(base), изменяет
basefield
флаг поток out
или in
, в зависимости от значения base
: значение 16 наборы basefield
в std::ios_base::hex, значение 8 комплектов std::ios_base::oct, стоимость 10 комплектов std::ios_base::dec.Оригинал:
When used in an expression out << setbase(base) or in >> setbase(base), changes the
basefield
flag of the stream out
or in
, depending on the value of base
: the value 16 sets basefield
to std::ios_base::hex, the value 8 sets std::ios_base::oct, the value 10 sets std::ios_base::dec.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Значения
base
кроме 8, 10, или 16 сброса basefield
к нулю, что соответствует десятичным производства и префикс зависит от входа.Оригинал:
Values of
base
other than 8, 10, or 16 reset basefield
to zero, which corresponds to decimal output and prefix-dependent input.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Содержание |
[править]Параметры
base | — | Новое значение для basefield Оригинал: new value for basefield Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
[править]Возвращаемое значение
Возвращает объект неопределенного типа такой, что если
str
это имя выходного потока типа std::basic_ostream<CharT, Traits> или std::basic_istream<CharT, Traits>, то выражение str << setbase(base) или str >> setbase(base) ведет себя как будто следующий код был казненОригинал:
Returns an object of unspecified type such that if
str
is the name of an output stream of type std::basic_ostream<CharT, Traits> or std::basic_istream<CharT, Traits>, then the expression str << setbase(base) or str >> setbase(base) behaves as if the following code was executed:Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
str.setf(base == 8?std::ios_base::oct:
base ==10?std::ios_base::dec:
base ==16?std::ios_base::hex:
std::ios_base::fmtflags(0),
std::ios_base::basefield);
[править]Пример
Запустить этот код
#include <iostream>#include <sstream>#include <iomanip>int main(){std::cout<<"Parsing string \"10 0x10 010\"\n"; int n1, n2, n3;std::istringstream s("10 0x10 010"); s >> std::setbase(16)>> n1 >> n2 >> n3;std::cout<<"hexadecimal parse: "<< n1 <<' '<< n2 <<' '<< n3 <<'\n'; s.clear(); s.seekg(0); s >> std::setbase(0)>> n1 >> n2 >> n3;std::cout<<"prefix-dependent parse: "<< n1 <<' '<< n2 <<' '<< n3 <<'\n'; std::cout<<"hex output: "<< std::setbase(16)<<std::showbase<< n1 <<' '<< n2 <<' '<< n3 <<'\n';}
Вывод:
Parsing string "10 0x10 010" hexadecimal parse: 16 16 16 prefix-dependent parse: 10 16 8 hex output: 0xa 0x10 0x8
[править]См. также
изменяет базу, используемую для целочисленного ввода/вывода (функция) | |
контролирует, используется ли префикс для обозначения основания числа (функция) |