我一直在研究如何在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);
答案 0 :(得分:10)
ios::Nocreate
不是标准C ++的一部分,但如果目的是为了防止文件被创建(如果文件尚不存在),您可以放松一下。这是ifstreams的默认值,所以你可以说:
fstream File("input.txt", ios::in);
答案 1 :(得分:3)
标准c ++库未定义std::ios::Nocreate
。无论如何都不会创建为阅读而打开的文件,因此您可以将其删除:
fstream文件(“input.txt”,ios :: in);
或只是使用:
ifstream File(“input.txt”);
答案 2 :(得分:2)
如果您使用的是VisualStudio,请尝试
std::fstream File("input.txt", std::ios::in|std::ios::_Nocreate);