关于在c++ for循环中检查文件是否存在

regarding file existence check within a for loop in C++

本文关键字:检查 文件 是否 存在 循环 c++ for      更新时间:2023-10-16

我正在尝试检查文件是否存在,如果存在则继续执行任务,如果不存在则输出没有这样的文件。我已经在其他代码中这样做了,但它似乎不与我当前的代码工作。

它的基本内容是:

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()显式地测试流是否打开。

编辑

以上是不正确的

测试流状态就足够了,我看不出你的代码有什么问题。