您的位置:首页 > 移动开发 > IOS开发

ifstream 没有 ios::nocreate 属性

2009-05-29 07:28 513 查看
今天在 vs2008 中运行一个小程序的时候,发现了一个小问题,ifstream 的 open 函数中不能用 ios::nocreate 属性。详细见代码:
#include
#include
#include

int main()
{
using namespace std;

ifstream inFile;

inFile.open("my.dat",ios::in | ios::nocreate);
if(!inFile)
{
cerr << "不能打开my.dat" << endl;
exit(1);
}

return 0;

}


出现错误:

error C2065: “nocreate”: 未声明的标识符
error C2065: “inFile”: 未声明的标识符


原因:从 vs 2003 开始,微软用一个新的 iostream 替换了原来的。新包中没有 nocreate 标识符。

原来 ifstream  中的 open 函数默认打开就是不创建文件。如果没有这个文件则打开出错,而不是创建文件。详见代码运行结果:

#include
#include
#include

int main()
{
using namespace std;

ifstream inFile;

inFile.open("my.dat",ios::in);
if(!inFile)
{
cerr << "不能打开my.dat" << endl;
exit(1);
}

return 0;

}


运行结果:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐