【问题标题】:creating a text file name varying everytime it runs in C每次在 C 中运行时创建一个不同的文本文件名
【发布时间】:2018-03-25 08:37:45
【问题描述】:

我想知道是否有一段代码可以帮助我在每次使用该代码的函数运行时创建一个具有不同名称的新文件,例如我想写这个

FILE * new_file = fopen("D:\C\data\1.txt", "w +" );

作为

FILE * new_file = fopen("D:\C\data\%d.txt", next_number,  "w +" );

next_number 来自另一个过程,该过程总是会获取存储在不同文件中的数字之后的数字。

【问题讨论】:

  • 首先,字符串中的反斜杠需要转义。其次,不,这不是使用fopen 的可能方式(你不能只是编造自己的论点)。第三,你确实知道例如snprintf(或至少sprintf)?
  • char buf[256] = ""; sprintf (buf, "D:\\C\\data\\%d.txt", next_number); FILE *new_file = fopen (buf, "w");(你真的需要"w+"吗?)
  • 哦,还有"w +"?有一个空格?可能有一些fopen 实现允许它,但它是非标准的(我认为)。

标签: c file-handling


【解决方案1】:

您可以使用snprintf()

例子:

char file_name[100]; // assuming path length is at most 100
snprintf(file_name, sizeof(file_name), "D:\\C\\data\\%d.txt", next_number);
FILE * new_file = fopen(file_name,  "w+" );

【讨论】:

  • 最好使用sizeof file_name作为大小。并转义那些反斜杠(或使用正斜杠)。
  • 逃跑的好消息——这看起来像windoze。
  • @Someprogrammerdude 已编辑。完全错过了逃跑。
最近更新 更多