你甚至可以避免明確的循環,並嘗試一種現代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,...),例如,如果需要的話,你可以通過向量的索引來引用它們。
來源
2011-12-23 13:55:34
mrm
如果您需要說明,請對答案進行評論。 –
也請停止簽署帖子 –
@ TomalakGeret'kal簽名帖? –