ifstream 是否支持以下内容:
ifstream myfile;
myfile.open("/home/Desktop/*.txt*");
我正在尝试做类似的操作,但我无法打开文件。如果我这样做,vim /home/Desktop/*.txt
我会打开唯一一个名为 help.txt1 的文件,但由于某种原因无法使用 ifstream 打开它。
最简洁的答案是不”。长答案是“不,它没有”。
PS看glob
函数获取文件列表,并一一处理。
ifstream
不支持通配符。您必须使用DIR
或类似的方式获取所有文件,然后将所有带有 .txt 的内容放在列表或数组中,然后循环调用fopen
每个文件。
匹配文件名通配符的功能称为“globbing”。您需要使用glob(3)
获取文件列表,然后依次打开每个文件。
这是因为 shell 解释了您键入的命令vim /home/Desktop/*.txt
。它查找与模式匹配的文件,并将它们的列表传递给vim
可执行文件的命令参数。
要在 Unix 上从 C++ 做类似的事情,请查看该glob
函数。