nocreate is not a member of std::ios

ios::nocreate是在C++标准制定之前在 <fstream.h> 中有定义的。

但是因为它跟系统平台相关密切,所以在C++标准中去掉了对它的支持。

如果想实现它的功能,可以这样编写一段程序:
// void main()
int main()
{
string str;
cin > > str;
// you should check if <str> is a valid file name here
// ifstream fin;
// fin.open(str.c_str(),ios::nocreate);
fstream fs(str.c_str(), ios_base::in); // open file for reading
if (!fs) // file not exist
{
// do nothing
}
else // file exists. close and re-open for writing
{
fs.close();
fs.open(str.c_str(), ios_base::out); // reopen for writing
}

Leave a Reply

Your email address will not be published.