gpt4 book ai didi

c - 如何从子目录中读取C中的文件

转载 作者:太空宇宙 更新时间:2023-11-04 06:06:50 26 4
gpt4 key购买 nike

这让我发疯。我想从子目录 (./method/CoyoteAdapter.java.tk.method.514.5.533.5.bk) 读取,但我的代码在 fscan 时崩溃(总线错误):

void readFrag( int **sequence, int& nTokens, char* fragName )
{
FILE *file;
char tmp[200];

strncpy(tmp, &fragName[2], 198);

char szWorkingDirectory[PATH_MAX];
szWorkingDirectory[0] = '\0';
getwd(szWorkingDirectory);

printf("Attempting to open %s/%s\n", szWorkingDirectory, tmp);
file = fopen(tmp, "r");

nTokens = 0;
fscanf(file, "%d", &(*sequence)[nTokens]);

while(!feof (file))
{
fscanf(file, "%d", &(*sequence)[nTokens]);
++nTokens;
}

fclose(file);
}

// maxFragSizes: Each block has its max frag size
void init( int **seq, int& seqSize, int **sub, int& subSize, int **problemSizesPerBlock, char* fragListName )
{
FILE *file;
char line[200];

int* tokens = new int[THREADS_PER_BLOCK-1];
int nTokens = 0;

file = fopen(fragListName, "rt");

while(fgets(line, 200, file) != NULL)
{
readFrag( &(*seq), nTokens, line );
}

fclose(file);

}

但是,如果我将文件复制到我的目录,它就可以工作。我在 UNIX (Mac OS) 上。请帮忙!

编辑:我按照建议添加了以下代码。输出没问题,但还是不行...

最佳答案

您必须验证文件指针。可能找不到文件,或者您没有足够的权限来阅读它。

 file = fopen(fragName, "rt");
if(file==NULL)
{
printf("\nFile not found");
return 0;
}
fscanf(file, "%d", &tmp);

关于c - 如何从子目录中读取C中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8752373/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com