1

例子:

//头文件

class Example
{
    private:
            fstream InputObject;  

    public:
            Example();  

}

//实现文件

Example::Example():InputObject("file_name.txt", ios::in) {}

从我迄今为止从类似问题中读到的内容来看,在“旧”版本的 C++ 中,初始化类中的 fstream 对象的唯一方法是通过上面显示的成员列表初始化来实现。

问题:
如果这确实是在类中初始化 fstream 对象的“唯一”方式,那么如果文件无法打开,我们该怎么办?

通常我会通过检查运行 fstream 对象以确保它正确打开,但在这种情况下这似乎是不可能的。另外,即使我可以,如果第一次没有这样做,我怎么能重新初始化对象?

4

1 回答 1

0
#define WIN32_LEAN_AND_MEAN // This makes it so it doesn't look through libs that are not included when running

#include <fstream> //To Read write to files, to be able to
#include <iostream> // The basic stuff, cout, cin, etc.
using namespace std; // the capability of typing cout instead of std::cout
int main() // our main loop
{
fstream InputObject; // declaring InputObject as something that can write to a file
if(!Inputobject.open("File Name Here") // if it cant open the file
{
cout << "File not Open" << endl; // then write to console, " File not Open"
}

return 0;
system("pause");
}

你想知道文件是否打开,所以使用 ! 在打开文件的功能之前意味着,未打开,因此带有!InputObject.open 的 if 语句将检查它是否未打开,如果是,请执行某些操作,因此 cout << "File is not open" 会告诉你它是否打开。

于 2015-10-22T07:29:09.340 回答