gpt4 book ai didi

c - C 中的文件扩展名作为用户输入

转载 作者:行者123 更新时间:2023-11-30 17:45:28 24 4
gpt4 key购买 nike

我有一个另存为功能,我需要我的程序来识别文件名并将其与文件扩展名分开。我读过了 Extracting the extension of a file但我的另存为功能不是主要的,所以我不能有argv[1]。这是到目前为止我的完整代码:

#include <stdio.h>
#include <errno.h>

void save_as()
{
// user enters their desired name for the file
char filename;
char fileext;
printf("Filename:\t");
scanf("%s", &filename);
filename = strtok(filename, "."); // according to the link I mentioned above this should have been: filename = strtok(argv[1], ".");
fileext = strtok(NULL, ".");
}

int main()
{
save_as();
return 0;
}

最佳答案

下面几行是正确的:

char filename;
char fileext;
printf("Filename:\t");
scanf("%s", &filename);
filename = strtok(filename, ".");
fileext = strtok(NULL, ".");

但是 strtok 返回 char* 并且您已将 filenamefileext 声明为单个 char。另请注意,应该有与filename缓冲区关联的内存。将其更改为:

char filename[255];
printf("Filename:\t");
scanf("%254s", &filename);
filename = strtok(filename, ".");
char* fileext = strtok(NULL, ".");

还要考虑检查这些调用的返回值,因为可能会发生一些错误。

关于c - C 中的文件扩展名作为用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19622895/

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