C++ 如何确保cin正确打开文件?
我有以下代码:C++ 如何确保cin正确打开文件?,c++,cout,cin,istream,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" << en
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();
static std::ifstreams_inF(argv[j]);
标准::cin.rdbuf(s_inF.rdbuf());
如果(…)
{
cout您可以使用is\u open
进行此操作。请参见此处:
在您的例子中,所有属于的子类对象(如s\u inF
和std::cin
)都有一个值,如果流准备好进行I/O操作,该值将返回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();
static std::ifstreams_inF(argv[j]);
标准::cin.rdbuf(s_inF.rdbuf());
如果(!s_inF)
{
库特