Файловый вывод и endl в c++

#include <iostream>
#include <fstream>

int main()
{
        std::ofstream oo{"qwer.h"};

        oo << "hello 1"  << std::endl;

        std::ifstream ff{"qwer.h"};

        std::string ss;
        while(ff)
        {
                ff >> ss;

                if(ff.eof())
                        break;
                std::cout << ss << std::endl;;
        }

        return EXIT_SUCCESS;
}

Результат:

hello
1

Но если я поменяю oo << "hello 1" << std::endl; на oo << "hello 1" << '\n'; или oo << "hello 1";, то ничего не выведется. Вопрос почему ?

P.S Знаю, что может помочь oo << "hello 1" << std::flush;, но во-первых так выводится только hello, во вторых если бы строка выглядела бы так oo << "hello" << std::flush; (единица отсутствует),то точно так же никакого вывода не было бы, а в третьих всё равно не понимаю почему вышеприведенные варианты не работают.


Ответы (0 шт):