Вы можете даже избежать явного для циклов и попробовать более естественный для современного C ++ способ, если хотите.
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <sstream>
#include <iterator>
int main()
{
// Your files are here, separated by 3 spaces for example.
std::string s("picture1.bmp file2.txt random.wtf dance.png");
// The stringstream will do the dirty work and deal with the spaces.
std::istringstream iss(s);
// Your filenames will be put into this vector.
std::vector<std::string> v;
// Copy every filename to a vector.
std::copy(std::istream_iterator<std::string>(iss),
std::istream_iterator<std::string>(),
std::back_inserter(v));
// They are now in the vector, print them or do whatever you want with them!
for(int i = 0; i < v.size(); ++i)
std::cout << v[i] << "\n";
}
Это очевидный способ справиться со сценарием типа «У меня есть 30строки».Храните их все где-нибудь, возможно, подойдет std :: vector, в зависимости от того, что вы можете сделать с именами файлов.Таким образом, вам не нужно давать каждой строке имя (f1, f2, ...), вы можете просто ссылаться на них по индексам вектора, если необходимо, например.