c - 如何在C中生成名称长度为X的文件?

标签 c linked-list fopen archive

我正在编写管理纯文本文件的程序代码。问题是如何使用 fopen() 生成一个文件,其长度为 X 的字符串。

我对 X 的意思是,用户可以仅键入一个字母作为文件名 ("a.txt"),但他也可以键入一个很长的名称("this_is_my_super_new_file_bla_bla_bla.txt")

我尝试使用链表来实现此目的,但我不知道如何将链表节点的 char 部分传递给 fopen() 的参数。

还有其他方法吗?我唯一不想做的就是限制名称的长度。如果我这样做,我就必须从一开始就预留内存,这会让我的程序变得更重。

最佳答案

假设您有一个包含文件名的字符串 (char *),并且您想要添加“.txt”扩展名,那么您可以执行以下操作:

char *input = "new_file_name";
char *filename = malloc((strlen(input) + 5) * sizeof(char));
sprintf (filename, "%s.txt", input);
FILE *file = fopen(filename, "w");
free(filename);

关于c - 如何在C中生成名称长度为X的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12701311/

相关文章:

c - 为什么在下面的函数中递增数组 "a"不是错误?

java - 使用 Java 从队列中删除 var

c - 在程序运行时读取 fprintf

PHP写入编辑的脚本文件内容导致额外的换行符

c - 那么函数指针的*可以省略吗?

c - 使用 System.security.cryptography 将使用 OpenSSL 进行公钥身份验证的 C 代码转换为 VisualBasic.NET?

java - ArrayList 与数组和列表的比较

c - 扫描文件和计算 c 中的值时出现段错误

c - 日期类型/scanf()

c - 将字符串与链表数据元素进行比较时,strcmp 不会返回 0