Является ли cin правильным объектом файла? - PullRequest
5 голосов
/ 13 марта 2010

Можно ли передать cin любой функции, которая принимает объект ifstream?

Ответы [ 2 ]

12 голосов
/ 13 марта 2010

std::cin - это не файловый поток, а входной поток, или istream. Вы можете передать его любой функции, которая принимает istream.

4 голосов
/ 13 марта 2010

std::cin является std::istream.

Существует небольшая разница между классом istream и его производным ifstream. ifstream позволяет открывать и закрывать файлы, предоставляя open(), close() и is_open(), и конструктор, который вызывает open() - и все!

Если ваша функция не использует эти методы, она должна принять istream& вместо ifstream&.

...