【问题标题】:How to write file inside folder in current directory using fopen如何使用fopen在当前目录中的文件夹内写入文件
【发布时间】: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(),但格式会有所不同。

标签: c fopen


【解决方案1】:

假设您的意思是 int number 而不是您的 number[],这是无效的 C。

您可以使用sprintf(),或者最好使用snprintf():

void record_data(int number) {
    char str[255]; //Large enough buffer.
    snprintf(str, sizeof(str), "./folder/%d", number);
    FILE *fptr;
    fptr = fopen(str, "w");
}

使用完后,请考虑在FILE * 上调用fclose()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-15
    • 2016-09-27
    • 2012-04-07
    相关资源
    最近更新 更多