我正在尝试检查文件是否存在,如果存在则继续执行任务,如果不存在则输出没有这样的文件。我已经在其他代码中这样做了,但它似乎不与我当前的代码工作。
它的基本内容是:
count=argc;
for(i=0; i < count-1; i++)
{
filename[i] = argv[i+1];
}
for( i=0; i < count-1; i++)
{
int tempi=i;
ifstream infile(filename[i].c_str());
if(infile)
{
//do things
}
else
{
cout<<"no file"<<endl;
}
您需要呼叫infile.is_open()
。另外,如果文件存在,您是否打算对它做些什么?
访问argv的规范方式是:
int main( int argc, char * argv[] ) {
for ( int i = 1; i < argc; i++ ) {
// do something with argv[i]
}
}
infile
,在条件中,当流处于"bad"状态时,计算结果为false
。
然而,仅仅打开文件失败并不会使流处于坏状态(欢迎来到c++ !)只有在尝试从流中读取后,此机制才会为您工作
幸运的是,您可以使用infile.is_open()
显式地测试流是否打开。
编辑
以上是不正确的
测试流状态就足够了,我看不出你的代码有什么问题。