Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用通配符C+;从当前目录打开文件+;_C++_File_Wildcard - Fatal编程技术网

C++ 使用通配符C+;从当前目录打开文件+;

C++ 使用通配符C+;从当前目录打开文件+;,c++,file,wildcard,C++,File,Wildcard,是否可以使用通配符在C/C++中打开给定目录中的文件 从某种意义上说,如果我想从程序中给定的当前目录中打开以“to(node_id)”结尾的文件 示例:我需要打开文件名以“to4”结尾的文件。 所需输出:它必须打开当前目录中文件名以“to4”结尾的所有文件。 如果当前目录中存在从0到4、从1到4、从2到4和从3到4的文件,则必须打开这些文件 如果C/C++中不可能,有其他的编程语言允许吗? < P>不在标准C++中;您需要使用特定于操作系统的函数调用或类似Boost.filesystem的文件系

是否可以使用通配符在C/C++中打开给定目录中的文件

从某种意义上说,如果我想从程序中给定的当前目录中打开以“to(node_id)”结尾的文件

示例:我需要打开文件名以“to4”结尾的文件。 所需输出:它必须打开当前目录中文件名以“to4”结尾的所有文件。 如果当前目录中存在从0到4、从1到4、从2到4和从3到4的文件,则必须打开这些文件


如果C/C++中不可能,有其他的编程语言允许吗?

< P>不在标准C++中;您需要使用特定于操作系统的函数调用或类似Boost.filesystem的文件系统库


在任一种情况下,您可以在给定的目录中获取文件列表并遍历列表并只打开与参数匹配的那些。

< P>可以用C和C++来完成。在Windows上,您可以使用[
FindFirstFile
FindNextFile
])(

您的平台可能已经为您完成了此操作。如果您正在运行Unix,请运行以下命令:

$ ./myprog *to4
shell首先展开通配符,然后使用展开的参数执行
myprog
,相当于

$ ./myprog from0to4 from1to4 from2to4 from3to4
在示例目录中

您询问了其他语言,因此下面的代码是如何使用Perl实现的:

#! /usr/bin/perl

foreach my $file (<*to4>) {
  open my $fh, "<", $file or die "$0: open $file: $!\n";

  while (<$fh>) {
    print "$file: $_";
  }
}
相关问题:。
$ for i in 0 1 2 3; do
> echo file $i > from${i}to4
> done

$ ./opento4s
from0to4: file 0
from1to4: file 1
from2to4: file 2
from3to4: file 3