我在使用函数 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/