如何确保cin正确打开文件?

时间:2013-01-02 23:55:00

标签: c++ cout cin istream

我有这段代码:

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();

任何建议?

2 个答案:

答案 0 :(得分:2)

作为std::basic_ios的子类的所有对象 - 如{(1}}和s_inF(在您的情况下) - 具有operator bool,如果流已准备就绪,则返回true用于I / O操作。

这意味着你可以直接测试它们,例如:

std::cin

答案 1 :(得分:0)

您可以使用is_open。见这里:

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