3

ifstream 是否支持以下内容:

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

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

4

4 回答 4

3

最简洁的答案是不”。长答案是“不,它没有”。

PS看glob函数获取文件列表,并一一处理。

于 2012-11-19T21:57:08.633 回答
0

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

于 2012-11-19T22:00:16.413 回答
0

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

于 2012-11-19T21:58:14.890 回答
0

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

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

于 2012-11-19T21:59:16.667 回答