gpt4 book ai didi

检查 C 中是否存在 .txt 文件

转载 作者:太空宇宙 更新时间:2023-11-04 05:32:34 25 4
gpt4 key购买 nike

我正在尝试创建一个函数,它从用户那里获取文件名并检查它是否存在,只要它不存在我希望重新要求用户输入一个文件,直到它找到一个文件存在。最后,我希望将该文件的名称返回给 main,以便在不同的函数中使用。

我创建了一个我认为可行的函数,但似乎我在调用变量而不是直接输入文件名时遇到问题。 (我不确定这是问题所在)。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

char* fileCheck();
char* fileCheck()
{
char* fileName;
printf("Please enter a file name: ");
gets(fileName);
while (access(fileName, F_OK) == -1)
{
printf("The File %s was not Found\nPlease enter a new file name: ", fileName);
gets(fileName);
}
return fileName;
}

int main (void)
{
fileCheck();
return 0;
}

我希望函数的输出是有效的(现有的)文件名。实际上,我收到了一个垃圾号码退出代码。

最佳答案

gets 需要空间,您不能使用未分配空间的 gets,应该是 char filename[SOME_SIZE];

另一方面,不要使用 gets 因为它不再是语言的一部分,而是使用 fgets 并去掉尾随的换行符。

Read this on how to trail the newline Removing trailing newline character from fgets() input

关于检查 C 中是否存在 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56252324/

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