使用C ++中的给定后缀提取文件名的部分

时间:2012-05-30 15:50:44

标签: c++

我知道这是相对微不足道的,但我是C ++的新手,并且在所有库函数之间迷失了方向。

在我正在运行的程序的目录中,我有一些名称为SUFFIX_ordinal.xml的文件。 (F.E。:SUFFIX_34.xml,SUFFIX_75.xml ..)

我需要遍历目录中的所有文件,找到这些文件并提取它们的序数。 (F.E。:34,75)。

你能帮忙吗?我甚至不知道从哪里开始。谢谢。

1 个答案:

答案 0 :(得分:1)

通常boost.filesystem遍历文件名。

虽然许多人不赞成,但使用sscanf提取序数可能最简单,例如:sscanf(filename, "SUFFIX_%d.xml", &ordinal);

如果您希望避免使用sscanf(很难责怪您),那么使用stringstream之类的内容仍然相当容易:

std::stringstream buffer(filename);

buffer.ignore(100, '_');
buffer >> ordinal;