快速提问,因为我只是设法在googlemobil上找到关于C ++的答案:有没有办法在C中打开和编辑文件,文件中有变量名?
让我们更清楚一点:我有一个提示,它会检查用户是否提供了文件名。如果没有输入文件名,程序会自动打开我在同一目录中创建的client.conf
文件;现在这是if-else语句的简单部分。
但是,如果给出了名称,如何让我的程序在同一目录中创建文件givenInput.conf
,并将数据发送给它?我想r / w交互与使用fopen()
的if语句的第一种情况相同,但fopen()
使用第一个参数const char * restrict filename,我试图为非常量的字符制作一些东西...
在C ++中,有一种方法可以通过创建一个单独的(空)数组来绕过它,粘贴输入然后只是添加字符串后缀;另外,它使用C ++特定的函数(我忘了名字,抱歉^^)来解析变量文件名....
任何想法如何在常规,简单的好'C中管理这个?我是C编程语言的新手,请为新手温柔;)
答案 0 :(得分:1)
您可以发送一个非常量字符串,其中需要一个常量字符串,并且不需要强制转换。因此,只需使用以最适合您的方式构建的字符串打开文件:
char filename[1024];
getFilenameSomehow(filename, 1024);
fopen(filename, "w");
但是,您可能不会发送一个常量字符串,其中需要一个非常量字符串。
const char *myConst = "May not be changed";
memset(myConst, 'X', strlen(myConst)); // Error! You may not modify a const string.
答案 1 :(得分:0)
您可以将变量转换为const char *
char file_var_name[100];
scanf("%99s", file_var_name);
fopen((const char *) file_var_name, "r");
答案 2 :(得分:0)
您可以使用main()
的命令行参数读取输入,即使用argc
和argv
。请阅读this了解详情
使用strcat
(存在于string.h
中)在文件名末尾连接“ .conf ”。
阅读关于strcat
的{{3}}。