Безопасно ли читать stdin/cin из ifstream?

Я читал, что можно прочитать cin через ifstream, изменив буфер, но безопасно ли это? Какие недостатки делают это так:

file.ios::rdbuf(cin.rdbuf());

Спасибо

C++: UNIX - по умолчанию переменная ifstream для стандартного ввода
iostream - C++: назначить cin переменной ifstream? - Переполнение стека

1 ответ

Решение

Да, это безопасно, вот и вся причина того, что rdbuf функции существуют.

Это также одна из главных причин того, что iostreams являются медлительными. ifstream объект не обязательно прикреплен к файлу. stringstream объект может быть прикреплен к файлу. Много полиморфизма, много виртуальных звонков, нет шансов на оптимизацию.

Но вы платите за эти недостатки независимо от того, перепривязываете ли вы потоки или нет.

Другие вопросы по тегам