std::setbase
Материал из cppreference.com
|
|
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
<metanoindex/>
<tbody> </tbody>| Определено в заголовочном файле <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
См. также
| изменяет базу, используемую для целочисленного ввода/вывода (функция) | |
| контролирует, используется ли префикс для обозначения основания числа (функция) |