Узнать, является ли поток бинарным

111
25 января 2021, 09:00

Предположим, что у меня есть поток для записи в файл ofstream

f(name,ios::binary|ios::in); 

Можно ли узнать, установлен ли флаг ios::binary для этого потока или нет. Ну или как-то по-другому узнать что это бинарный поток.

Answer 1

Чтобы быстро всё исправить и все флаги сохранились попробуйте собственную подделку:

// g++ fflags.cpp
# include <iostream>
# include <fstream>
namespace Alex {
class ofstream : public std::ofstream{
public:
    std::ios_base::openmode mo ;
    ofstream(const std::string& filename,
      std::ios_base::openmode m):
      std::ofstream(filename,m),mo(m|std::ofstream::out){}
    };
}
void m(Alex::ofstream   & f){
    std::cout<<"ios::binary = ";
    if(f.mo bitand std::ios::binary)        std::cout<<"Ok\n";
    else        std::cout<<"No\n";  }
int main(){
    char const * name = "test";
    Alex::ofstream  f(name,std::ios::binary|std::ios::in); 
    m(f); }

>

./a.out 
ios::binary = Ok
Answer 2

Никак не узнать. И для std::FILE* тоже не узнать как был открыт файл.

READ ALSO
ISO C++ forbids comparison between pointer and integer [-fpermissive]

ISO C++ forbids comparison between pointer and integer [-fpermissive]

Проблема заключается в том, что код спокойно выполняется на онлайн gcc компиляторах и MSVS, а у меня - нетОшибку видит в строках while (string[i] != '\0') и ошибкуerror:...

91
Как использовать метод dataset в jQuery?

Как использовать метод dataset в jQuery?

У меня возник вопрос, как я могу удалить блоки через datasetЧтобы каждый блок удалялся по отдельности по клику

142
Не изменяется цвет ссылки при наводке хотя так работает с почтой

Не изменяется цвет ссылки при наводке хотя так работает с почтой

Я использую шаблон сайта и хотел бы спросить где параметр находится который изменяет цвет ссылки при наводкеЯ уже пробовал менять параметры...

110
варианты meta description

варианты meta description

Какие варианты description допускаются в мета теге? Те

132