gpt4 book ai didi

c - 如何在 C 中为文件扩展名定义 ".txt"常量?

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

我在使用函数 fopen() 的地方有这段代码,我有一个字符串 name 并且上面有“test”。我怎样才能像“.txt”这样的文件扩展名定义一个常量,只是为了在我的 name var 中包含名称而不是它的扩展名?我想过:#define TXT ".txt" 但是我该怎么做才能在函数中使用它呢?像 fopen(name TXT, "r"); 还是当我在 scanf() 部分询问文件名时应该添加常量?

最佳答案

如果我正确理解了这个问题,我会在询问文件名后简单地添加常量。像这样的东西有效:

#define _GNU_SOURCE
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

#define TXT ".txt"

int main(void)
{
char name[30];

printf("Please enter file name: ");
if (scanf("%25s", name) != 1) /* must leave space for ".txt" and \0. */
exit(-1);

*((char *)mempcpy(name + strlen(name), TXT, 4)) = "\0";

printf("%s\n", name);
exit(0);
}

用 mempcpy 连接字符串的方式似乎有点奇怪,但实际上这是我所知道的最安全的方式。希望对您有所帮助。

关于c - 如何在 C 中为文件扩展名定义 ".txt"常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46085150/

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