【发布时间】:2018-03-24 07:33:47
【问题描述】:
cout<<"enter name of file : " <<endl;
char nof[30] ;
for (int i=0;i<20;++i){
cin>>nof[i];
if (nof[i-1]=='x'){
if (nof[i]=='t'){
break;
}
}
}
fstream file1;
file1.open(nof);
if (file1.is_open()) cout<<"file is open"<<endl;
这是一个代码,它应该从用户那里获取文件的名称来创建 但是我检查了它是否打开了,它没有,怎么办?
【问题讨论】:
-
您需要提供 MCVE。您可以在网站文档中找到说明。
-
编译所有警告和调试信息:
g++ -Wall -Wextra -g和 GCC。阅读文档,尤其是 std::fstream。open可能因多种原因而失败(可能是特定于操作系统的;对于 Linux,请参阅底层 open(2) 系统调用中的错误...)。 Use thegdbdebugger. -
您从
cin读取输入的代码非常脆弱:它可能会做一些您意想不到的事情。我建议你添加一行 `std::cout