ifstream与通配符

时间:2012-11-19 21:54:09

标签: c++ file ifstream

ifstream是否支持以下内容:

ifstream myfile;
myfile.open("/home/Desktop/*.txt*");

我正在尝试进行类似的操作,但我无法打开文件。如果我vim /home/Desktop/*.txt我打开了唯一一个名为help.txt1的文件,但由于某种原因无法使用ifstream打开它。

4 个答案:

答案 0 :(得分:3)

简短的回答是“不”。答案很长,“不,不是”。

P.S。查看glob函数以获取文件列表并逐个处理它们。

答案 1 :(得分:0)

匹配文件名通配符的功能称为"globbing"。您需要使用glob(3)获取文件列表,然后依次打开每个文件。

答案 2 :(得分:0)

这是因为shell会解释您输入的命令vim /home/Desktop/*.txt。它查找与模式匹配的文件,并将它们的列表传递给vim可执行文件的命令参数。

要在Unix上用C ++做类似的事情,请查看glob函数。

答案 3 :(得分:0)

ifstream不支持通配符。您必须使用DIR或类似的东西获取所有文件,然后将.txt中的所有文件放入列表或数组中,并在每个文件上循环调用fopen