【问题标题】:Function that creates a different csv file every time it is run每次运行时创建不同 csv 文件的函数
【发布时间】:2022-01-25 08:20:32
【问题描述】:

我正在制作一个可以将矩阵和向量保存在 CSV 文件中的 c 程序,这样我就可以在它们之间执行操作。在我的一个函数中,我创建了一个带有随机数的矩阵,然后将其保存在 CSV 文件中。

问题是我不知道每次运行函数时如何创建不同的文件,因此每个数组都可以存储在不同的 CSV 文件中。因此,我必须将所有矩阵保存在同一个文件中,这使得其余过程变得更加困难。如果没有完全随机的名称,我如何制作每次都生成不同文件的函数。

这是project in replit的链接

【问题讨论】:

  • 检查存在哪些文件,然后确定名称。日期和时间也可以带来一些独特性。 stackoverflow.com/questions/12489/…
  • 我只会使用一个通用前缀,后跟一个 4 位数字,然后是扩展名,例如matrix5325.csv。当程序启动时,它应该扫描目录以查看哪些文件已经存在,然后将第一个可用编号用于新文件。或者你可以找到已经使用的最大数,然后加 1。
  • 您可以写入文件 'lastnum.txt' ,这是您用于 csv 文件名的最后一个数字。当你使用它时,更新'lastnum.txt'的内容,将它增加1。要组合字符串和数字来创建文件名,您可以使用snprintf 看这里:stackoverflow.com/questions/5172107/…

标签: c csv


【解决方案1】:

如果没有完全随机的名称,我如何制作每次生成不同文件的函数。

一些可能的解决方案:

  • 使用时间戳作为文件名的一部分
  • 使用计数器

对于时间戳,示例代码:

  char filename[80];
  snprintf(filename, sizeof(filename), "prefix.%d", time(NULL));
  FILE *fout = fopen(filename, "wt");

对于计数器,使用与上面相同的代码,但检查文件prefix.${counter} 是否存在(请参阅man access)。如果是,请增加计数器并重试。如果没有,请使用文件名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    相关资源
    最近更新 更多