我知道这是相对琐碎的,但是我是C ++的新手,并且在所有库函数之间迷路了。
在我正在运行的程序目录中,我有一些文件名为SUFFIX_ordinal.xml的形式。 (F.E .: SUFFIX_34.xml,SUFFIX_75.xml ..)
我需要遍历目录中的所有文件,找到这些文件并提取其序数。 (F.E .: 34,75)。
你能帮我吗?我什至不知道从哪里开始。谢谢。
最佳答案
通常boost.filesystem
遍历文件名。
尽管许多人不赞成,但是使用sscanf
提取序数可能是最简单的,例如:sscanf(filename, "SUFFIX_%d.xml", &ordinal);
如果您不想使用sscanf
(很难怪您),使用stringstream
之类的东西还是很容易的:
std::stringstream buffer(filename);
buffer.ignore(100, '_');
buffer >> ordinal;