我正在尝试浏览文件夹中的文件以计算一些数字,但我在尝试这样做时遇到了一些麻烦。我正在使用Code :: Blocks,并用C语言写作。我看过类似的问题&这个网站上的答案,但似乎都没有解决我的问题。
这是我的代码开始的方式:
#include
<dirent.h>
#define prod
#ifndef prod
#define DIRPATH "C:\\Users\\User1\\...etc
#define FILEPATH "C:\\Users\\User1\\.. \\"
#else
#define DIRPATH "C:\\Users\\User2\\..etc
#define FILEPATH C:\\Users\\User2\\.. \\"
#endif
int main(){
DIR* dir = NULL;
struct dirent *currentFile = NULL;
dir = opendir(DIRPATH);
char path[100] = FILEPATH;
while((currentFile = readdir(dir)) != NULL)
{
if(strcmp(currentFile->d_name, ".") != 0 && strcmp(currentFile->d_name, "..") != 0)
{
char *filePath = (char *) malloc((strlen(path) + strlen(currentFile->d_name) - 1) * sizeof(char));
filePath= strcpy(filePath, path);
strcat(filePath,currentFile->d_name);
FILE *file = fopen(filePath,"r");
// PROGRAM DIES AT THIS POINT //
free(filePath);
fclose(file);
// the rest runs just fine
}
}
通过使用printf,我能够推断出我的程序在应该打开文件时崩溃,尽管我不明白为什么。我已经打印了filePath,它给了我应有的东西。谁能帮我弄清问题是什么?
非常感谢, 尼古拉斯