用于循环int声明以打开多个文件

时间:2015-11-16 23:05:13

标签: c++ for-loop

我已经在这里做了一些搜索,但我认为我无法清楚地表达我所寻找的内容,所以这里是我的帖子:

我有多个具有相似名称的文件,我想打开并一个接一个地显示在我的控制台中。这些文件是ascii图像,按顺序显示时会创建动画

文件名是:

  • 8ball1.txt
  • 8ball2.txt
  • 8ball3.txt
  • 8ball4.txt

我想使用' int' for循环中的声明,每次循环执行时打开列表中的下一个文件

希望下面的代码有意义 - 我可以使用for loops int声明部分完成文件名吗?还有其他选择吗?

void animate2(){

for (int x = 1; x < 5; x++) {

    ifstream animation("8ballanimation//8ball<<x<<.txt");

    while (!animation.eof())
    {
        string displayFile;
        getline(animation, displayFile);
        cout << displayFile << endl;

    }
    animation.close();
    Sleep(150);
    system("CLS");
}

}

2 个答案:

答案 0 :(得分:3)

"8ballanimation//8ball<<x<<.txt"没有意义。 另外,请避免使用.eof(),通过返回getline来检查完成情况。

void animate2() {
    for (int x = 1; x < 5; x++) {
        stringstream ss;
        ss << "8ballanimation" << x << ".txt";
        ifstream animation(ss.str());
        string line;
        while (getline(animation, line))
            cout << line << "\n";
        animation.close();
        Sleep(150);
        system("CLS");
    }
}

答案 1 :(得分:2)

使用C ++ 11,您有std::to_string

for (int i = 1; i <= 4; i++) {
  std::string path = "8ball" + std::to_string(i) + ".txt";
  std::ifstream animation(path);
  // Do what you want
}