Как убедиться, что cin правильно открыл файл?

У меня есть этот код:

static std :: ifstream s_inF(argv[j]);
std :: cin.rdbuf(s_inF.rdbuf());

Как я могу убедиться, что он правильно открыл файл и нет проблем?

Я имею в виду, я хотел бы написать что-то вроде:

static std :: ifstream s_inF(argv[j]);
std :: cin.rdbuf(s_inF.rdbuf());
if(.....)
{
cout << "can not open the file" << endl;
return 0;
}
...
.....
....
cin.close();

любое предложение ?

0

Решение

Ты можешь использовать is_open за это. Посмотреть здесь:

http://www.cplusplus.com/reference/fstream/ifstream/is_open/

0

Другие решения

Все объекты, которые являются подклассами std::basic_ios — лайк s_inF а также std::cin, в вашем случае — иметь operator bool возвращает true, если поток готов к операциям ввода-вывода.

Это означает, что вы можете просто проверить их напрямую, например:

static std::ifstream s_inF(argv[j]);
std::cin.rdbuf(s_inF.rdbuf());
if (!s_inF)
{
cout << "can not open the file" << endl;
return 0;
}
// ...
cin.close();
2

По вопросам рекламы [email protected]