我已经在这里做了一些搜索,但我认为我无法清楚地表达我所寻找的内容,所以这里是我的帖子:
我有多个具有相似名称的文件,我想打开并一个接一个地显示在我的控制台中。这些文件是ascii图像,按顺序显示时会创建动画
文件名是:
我想使用' 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");
}
}
答案 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
}