【发布时间】:2016-01-20 07:53:32
【问题描述】:
我想写入一个文件,该文件位于当前工作目录的文件夹内,文件名是传递给函数的数值。
void record_data(number[]) {
FILE *fptr;
fptr = fopen("./folder/number", "w");
}
我无法以这种方式这样做(它将文件命名为number)。
我怎样才能正确地做到这一点?
【问题讨论】:
-
你的意思是record_data(int number)吗?
-
这在 C 中是无效的
(number[])。 -
如果您的意思是
void record_data(const char number[])(因此您将数字作为字符串传递),那么您需要将./folder/字符串与数字连接(snprintf()到局部变量中)并传递fopen()的串联值。如果您将数字作为int(void record_data(int number)) 传递,那么您仍然需要使用snprintf()将文件名格式化为局部变量并将其传递给fopen(),但格式会有所不同。