gpt4 book ai didi

c - 文件路径数组中只有一个元素有效 - C

转载 作者:行者123 更新时间:2023-11-30 16:34:44 24 4
gpt4 key购买 nike

我正在尝试从 2 个不同的文件路径打开文件,但我似乎一次只能从一个文件路径打开它们。在 load_data 函数中,path[0] 打开第一个路径中的文件,当我将其更改为 path[1] 时,它会打开第二个路径中的文件。我怎样才能打开两者?

    char *paths[] = {"C:\\transactions\\confirmed\\", "C:\\transactions\\pending\\"};
char *suffix = "MCW.txt";
char * filenames[9] = {
//Confirmed:
"1519511094", "1519515094", "1519609024", "1519611094", "1519811094",

//Pending
"1520021094", "1520111094", "1520121094", "1520122094"
};

void load_data(void)
{
int i;
char FullPath[100];
FILE *TransFile;

for (i = 0; i < 9; i++)
{
sprintf(FullPath, "%s%s%s", paths[0], filenames[i], suffix);
printf("Attempt Opening File number %d File name %s\n", i, FullPath);
TransFile = fopen(FullPath, "r");

if (TransFile == NULL)
{
printf("Error!\n");
//continue;
}
else
{
printf("Success opening!\n");
fclose(TransFile);
}
}


}

最佳答案

您的问题并不完全清楚您希望实现什么目标或您希望操作的文件系统结构是什么

但似乎您应该创建另一个文件描述符来使用或创建一个处理文件操作的内部循环

我写的第二个提案允许您保留所有文件描述符(如果我理解正确的话总共 18 个文件描述符(每个目录中有 9 个文件) - 我不确定我是否完全理解您,但希望这会给您带来某种帮助)感觉应该做什么。

这不是一个很好的解决方案,但可以根据您的需求进行调整

FILE *TransFileConfirmed;
FILE *TransFilePending;

for (i = 0; i < 9; i++)
{
sprintf(FullPath, "%s%s%s", paths[0], filenames[i], suffix);
printf("Attempt Opening File number %d File name %s\n", i, FullPath);
TransFileConfirmed = fopen(FullPath, "r");

sprintf(FullPath, "%s%s%s", paths[1], filenames[i], suffix);
printf("Attempt Opening File number %d File name %s\n", i, FullPath);
TransFilePending = fopen(FullPath, "r");

if ( !TransFileConfirmed || !TransFilePending)
{
printf("Error!\n");
//continue;
}
else
{
printf("Success opening!\n");
fclose(TransFilePending);
fclose(TransFileConfirmed);
}

FILE *Trans[9 * 2];
int j;

for (i = 0; i < 9; i++)
{
for (j = 0; j < 2; j++ ) {
sprintf(FullPath, "%s%s%s", paths[j], filenames[i], suffix);
printf("Attempt Opening File number %d File name %s\n", i, FullPath);
Trans[j*i + i] = fopen(FullPath, "r");

if ( !Trans[j*i + i] )
{
printf("Error!\n");
//continue;
}
else
{
printf("Success opening!\n");
fclose(Trans[j*i + i]);
}
}

关于c - 文件路径数组中只有一个元素有效 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49214625/

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