gpt4 book ai didi

c - 在c中使用fopen_s并自定义文件名

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

我知道如果我想使用fopen_s,它应该采用这种格式fopen_s(*file,"name.txt","w")

但是如果我想自定义文件名,该怎么办呢?我尝试过 fopen_s(*file,str,"w") 其中 str"file.txt",但它只显示 HELP 和没有创建任何文件。有人可以帮助我吗?谢谢!

这是我的代码:

char str[100];
printf("Enter .txt file name\n");
fgets(str, 100, stdin);
FILE *fp;

fopen_s(&fp, str, "w");
if (fp == NULL)
{
printf("HELP\n"); exit(1);
}
fclose(fp);

最佳答案

了解 fgets 的作用:fgets() 从流中最多读入一个小于 size 的字符并将它们存储到 s 指向的缓冲区中。读取在 EOF 或换行符后停止。如果读取换行符,则将其存储到缓冲区中。终止空字节 (aq\0aq) 存储在缓冲区中最后一个字符之后。

您需要打印您得到的内容,以确保您传递的内容是有效的文件名(例如不应有 \n)

解决这些问题的一个好方法是从小处开始,例如为 str 分配一些内容,以确保其余代码正常工作,然后继续尝试包括从 读取内容标准输入

另一个有用的事情是检查 fopen_s 返回的 errno,这会让您很好地了解发生了什么。

关于c - 在c中使用fopen_s并自定义文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48512853/

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