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++.

DR Применено к Поведение при публикации Правильное поведение
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/w/cpp/io/manip/resetiosflags

Spec-Zone.ru

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