我有这段代码:
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 :(得分: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/