编译C++代码时出现ios :: nocreate错误

M.N*_*M.N 4 c++ linux iostream g++

同时,编译一个在RHEL 5.0上用C++编写的包.我收到以下错误.

>错误:nocreate不是.的成员std::ios

源代码对应于:

ifstream tempStr(argv[4],ios::in| ios::nocreate);


我试过了

#g ++ -O -Wno-deprecated <file.cpp> -o <file>

以及:

#g ++ -O -o <file>

请提出解决方案.

小智 8

ios::nocreate 不是标准C++的一部分 - 你期望它做什么?

编辑:从谷歌看来,它似乎是为了防止文件被创建(如果它尚不存在).这是ifstreams的默认值,所以你可以说:

ifstream f( filename );
if ( ! f.is_open() ) {
    // open failed - probably because infput file does not exist  
}
Run Code Online (Sandbox Code Playgroud)


小智 7

如果文件ios::in不存在,则以读取模式()打开文件将不会创建它.你可以放弃非标准nocreate.因为in是默认值ifstream:

ifstream tempStr (argv[4]);
Run Code Online (Sandbox Code Playgroud)