6

可能重复:
编译 C++ 代码时出现 ios::nocreate 错误

我一直在研究如何在 c++/c# 中创建一个简单的词法编译器,但是当我尝试编译程序时似乎出现错误,错误是

error c2065 'nocreate' undeclared identifier 

我该如何处理这个问题?但我想它可能与 fstream 标头有关,关于我如何处理它的任何想法?

这是它给我一个错误的代码

loadTransitionTable( );

    fstream File("input.txt", ios::in|ios::Nocreate);

    if (!File)
    {
       cout<<"\n Unable to open the input file."<<endl;
       cout<<"\n Press any key to exit.";

       getch( );
       exit(0);
4

3 回答 3

12

ios::Nocreate不是标准 C++ 的一部分,但如果打算阻止创建该文件(如果该文件尚不存在),则可以放松。无论如何,这是 ifstreams 的默认设置,所以你可以说:

fstream File("input.txt", ios::in);
于 2012-11-13T10:17:40.443 回答
3

标准 c++ 库没有定义std::ios::Nocreate. 无论如何都不会创建打开以供阅读的文件,因此您可以将其省略:

fstream File("input.txt", ios::in);

或者只是使用:

ifstream File("input.txt");

于 2012-11-13T10:19:17.620 回答
3

如果您使用 VisualStudio,请尝试

std::fstream File("input.txt", std::ios::in|std::ios::_Nocreate);
于 2012-11-13T10:19:57.267 回答