gpt4 book ai didi

c - 尝试打开文件时 Program.exe 停止工作

转载 作者:行者123 更新时间:2023-11-30 19:31:38 24 4
gpt4 key购买 nike

void formFile(FILE** f, char** name)
{
printf("Enter name: ");
scanf("%s", name);

if (1 == doesFileExist(*name, f))
{
printf("Already exists.");
return;
}
}

这是doesFileExist(char*, FILE**) :

int doesFileExist(char *name, FILE ** f)
{
if(NULL == (*f = fopen(name, "wb")))
{
return 0;
}
return 1;

}

formFile() ,当我注释掉 if 时,代码运行没有任何错误。非常感谢任何反馈!

最佳答案

doesFileExist() 中,如果 fopen() 成功则返回 1,如果失败则返回 0。但在 formFile() 中,如果 doesFileExist() 返回 1,换句话说,如果一切正常,您将打印一条错误消息。

另一个问题是。您使用 char **name 调用 scanf( "%s", name );%s 需要一个 char * 作为参数(指向足够的数组),所以你应该做类似的事情

int size = /* large enough */;
*name = malloc( size );
scanf( "%s", *name );

或者更好地使用fgets( *name, size, stdin );而不是scanf(),因为它最多自动读取size-1 > 字符。

关于c - 尝试打开文件时 Program.exe 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48261340/

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