Spec-Zone.ru › C++

std::resetiosflags

Определён в заголовочном файле <iomanip>
/*unspecified*/ resetiosflags( std::ios_base::fmtflags mask );

При использовании в выражении out << resetiosflags(mask) или in >> resetiosflags(mask) сбрасывает все флаги форматирования потока out или in, указанные в mask.

Параметры

mask - битовая маска флагов, которые нужно сбросить

Возвращаемое значение

Объект неуказанного типа, для которого выполняется следующее:

  • если out — объект типа std::basic_ostream<CharT, Traits>, выражение out << resetiosflags(mask)
    • имеет тип std::basic_ostream<CharT, Traits>&
    • имеет значение out
    • ведёт себя так, как если бы оно вызывало f(out, mask)
  • если in — объект типа std::basic_istream<CharT, Traits>, выражение in >> resetiosflags(mask)
    • имеет тип std::basic_istream<CharT, Traits>&
    • имеет значение in
    • ведёт себя так, как если бы оно вызывало f(in, mask)

где функция f определена следующим образом:

void f(std::ios_base& str, std::ios_base::fmtflags mask)
{
    // reset specified flags
    str.setf(ios_base::fmtflags(0), mask);
}

Пример

#include <iomanip>
#include <iostream>
#include <sstream>

int main()
{
    std::istringstream in("10 010 10 010 10 010");
    int n1, n2;
    
    in >> std::oct >> n1 >> n2;
    std::cout << "Parsing \"10 010\" with std::oct gives: " << n1 << ' ' << n2 << '\n';
    
    in >> std::dec >> n1 >> n2;
    std::cout << "Parsing \"10 010\" with std::dec gives: " << n1 << ' ' << n2 << '\n';
    
    in >> std::resetiosflags(std::ios_base::basefield) >> n1 >> n2;
    std::cout << "Parsing \"10 010\" with autodetect gives: " << n1 << ' ' << n2 << '\n';
}

Вывод:

Parsing "10 010" with std::oct gives: 8 8
Parsing "10 010" with std::dec gives: 10 10
Parsing "10 010" with autodetect gives: 10 8

Отчёты об ошибках

Следующие отчёты об ошибках, меняющие поведение, были применены задним числом к ранее опубликованным стандартам C++.

Отчёт об ошибке Применяется к Опубликованное поведение Правильное поведение
LWG 183 C++98 resetiosflags можно было использовать только с
потоками типа std::ostream или std::istream
можно использовать с любым
символьным потоком

См. также

setf
устанавливает заданный флаг форматирования
(открытая функция-член std::ios_base)
setiosflags
устанавливает указанные флаги ios_base
(функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/manip/resetiosflags

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API