c - 打开并编辑 C 中具有变量名称的外部文件

标签 c file-io io

简单的问题,因为我只能在 googlemobil 上找到有关 C++ 的答案:有没有办法在 C 中打开和编辑文件,其中文件具有变量名称?

让我们说得更清楚一点:我有一个提示,它检查用户是否提供文件名。如果没有输入文件名,程序会自动打开我在同一目录中创建的 client.conf 文件;现在这是 if-else 语句中最简单的部分。

但是,如果已给出名称,如何让我的程序在同一目录中创建文件 givenInput.conf 并向其发送数据?我认为读写交互与 if 语句的第一种情况相同,使用 fopen() ,但是 fopen() 用作第一个参数 const char *限制文件名,我正在尝试为不是常量的字符做一些事情......

在 C++ 中,有一种方法可以绕过这个问题,即创建一个单独的(空)数组,粘贴输入,然后向其中添加字符串后缀;另外,它使用 C++ 特定函数(我忘记了名字,抱歉^^)来解析变量文件名....

有什么想法如何在常规、简单的 C 语言中管理这个问题吗?我是 C 编程语言的新手,请对新手温柔一点;)

最佳答案

您可以在需要常量字符串的情况下发送非常量字符串,并且无需进行强制转换。因此,只需使用您以最适合您的方式构建的字符串打开文件即可:

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.

关于c - 打开并编辑 C 中具有变量名称的外部文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20211668/

相关文章:

c - 将字符添加到结构体中

从 C 调用 Mips

c - 具有多个关键部分以同步两个共享队列

c - 如何将 char 字符串从另一个函数复制到 main?

c - C 程序如何确定并打印它自己的可执行文件的位置?

java - 将方法移动到 SwingWorker

linux - 从文件 Bash 添加整数

java - Java中如何读取文件

c++ - 代码块 : Unit test file requires entire address of a file

java - ObjectInputStream.readObject 导致 EOFException