gpt4 book ai didi

c - C 中的 fopen 出现段错误? (不太确定导致错误的原因)

转载 作者:行者123 更新时间:2023-11-30 18:57:49 24 4
gpt4 key购买 nike

这是我的 main() 代码

int main(int argc, char **argv) {
if (argc != 3) {
puts("Invalid number of args in the input. Sorry.");
return 0;
}
if (doesItExist(argv[2]) == 0) {
return 0;
}
FILE *fpoint;
char yesorno[2];
tail = (WordN) malloc(sizeof(struct WordNode));
tail->word = "";
tail->first = (FileN) malloc(sizeof(struct FileNode));
(tail->first)->freq = -1;
ftw(argv[2], tokeForMe, 1);
/**
fpoint = fopen(argv[1], "r");
if(fpoint != NULL) { // file exists give user option to overwrite or rename
getInput("Do you want to overwrite the file? Enter only either Y or N nothing else\n", yesorno, 2);
if(yesorno[0] == 'N' || yesorno[0] == 'n') {
puts("All right. Not going to proceed with the program");
return 0;
}
else if(yesorno[0] != 'Y' && yesorno[0] != 'y') {
puts("You inputted some other character, try again \n");
getInput("Do you want to overwrite the file? Enter Y or N. Do not enter anything other than 1 Y or 1 N \n", yesorno, 2);
}
}
fclose(fpoint);
**/
FILE *index;
index = fopen(argv[1], "w");

//puts("here");
writeToIndex(index, tail->next); //tail is pointing to the first word node
puts("there");
if (doesItExist(argv[1]) == 0) {
return 0;
}
fclose(index);
TailTerminate();
return 0;
}

当我使用文件指针读取 argv[1] 以查明用户是否想要覆盖 argv[1] 中指定的文件时取消注释该部分,代码段会出错。

该程序本身只是一个从文件目录中创建某种索引器然后将其打印出来的程序。 argv[2]中指定目录路径,argv[1]中指定打印索引的路径。

有人可以帮我解决这个问题吗?程序的其余部分(尾节点等)只是列出程序中出现的单词和频率。

最佳答案

您没有显示从 main 调用的所有函数(getInput?),它们可能包含错误。从你评论的代码来看,我只能说你写的是这样的:

FILE *f = fopen(...);
if (f != NULL)
{
/* use f */
}
fclose(f);

但它应该是这样的:

FILE *f = fopen(...);
if (f != NULL)
{
/* use f */
fclose(f);
}

也就是说,不要使用 NULL 指针调用 fclose()

关于c - C 中的 fopen 出现段错误? (不太确定导致错误的原因),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19462704/

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