【发布时间】:2015-03-01 00:24:40
【问题描述】:
将this solution 与dirent.h 一起使用,我正在尝试迭代当前文件夹的特定文件(那些具有.wav 扩展名和开头的文件3 位数字),代码如下:
(重要提示:由于我使用的是 MSVC++ 2010,我似乎无法使用 #include <regex>,而且我也无法使用 this,因为不支持 C++11) p>
DIR *dir;
struct dirent *ent;
if ((dir = opendir (".")) != NULL) {
while ((ent = readdir (dir)) != NULL) {
printf ("%s\n", ent->d_name);
//if substr(ent->d_name, 0, 3) ... // what to do here to
// check if those 3 first char are digits?
// int i = susbtr(ent->d_name, 0, 3).strtoi(); // error here! how to parse
// the 3 first char (digits) as int?
// if susbtr(ent->d_name, strlen(ent->d_name)-3) != "wav" // ...
}
closedir (dir);
} else {
perror ("");
return EXIT_FAILURE;
}
如何使用未完全支持 C+11 的 MSVC++2010 执行这些测试?
【问题讨论】:
-
什么是
import <regex>?这是 c++,因为它在我看来像 c。 -
对不起@iharob,我更正了,我的意思是:
#include <regex>(我写 import 可能是因为 python...) -
如果你擅长python,那为什么不用python呢?而且,c 解决方案与 c++ 解决方案有很大不同,您不需要正则表达式,这就像用火箭筒杀死苍蝇一样。
-
@iharob 我必须在 c/c++ 而不是 python 上这样做,因为我使用的 SDK 仅在 c/c++ 中可用,而且我想要一个非常小的输出可执行文件...... C 或 C++ 解决方案会对我来说没问题,只要它适用于“旧”MSVC++2010
-
@iharob,如果您无法帮助使用 c++,为什么您认为这不像 c++。 C++ 被设计为兼容并允许将 C 代码编译为 c++ 代码。您的 cmets 在这里显然是题外话。
标签: c++ c string visual-studio-2010 visual-c++