C++:具有随机名称的文件输出
C++: file output with a random name
我是C++新手,所以这可能是一个非常幼稚的问题。我正在尝试通过从主文件调用函数将数据输出到文件。我在主要函数中多次调用此函数,这就是为什么我需要打开追加模式来写入文件的原因。这行代码写入我的输出文件并且工作正常:
ofstream outFile("result_col2.plt",ios::app);
.
.
outFile.close();
但是,我想使输出文件的名称随机,我正在尝试这样做:
int number = 1; // let's say
ostringstream convert;
convert << number;
string iLevel_str = convert.str();
string fname = "result_col2" + iLevel_str + ".plt";
ofstream outFile(fname.c_str(),ios::app);
.
.
outFile.close();
但是当我这样做时,每次运行后,我的数据文件的大小都会增加一倍。为什么它在后一种情况下不起作用,但在我之前的情况下效果很好?有什么建议吗?
为了使其更易于理解,名为"result_col2.plt"的文件在每次运行主函数后都保持相同的大小。而名为"result_col21.plt"的文件大小翻了一番(第一次运行 - 85 kb,然后是 170 kb,依此类推。
除非您更改整数 =1,否则它将一遍又一遍地打开并附加 result_col21.plt,因此您需要加倍执行 for 循环,每次迭代都会增加数字
如果您只需要一个随机文件名,您可以使用标准函数std::tmpnam()
但它会生成位于系统"temp"目录中的随机文件名。
详情请参阅:http://en.cppreference.com/w/cpp/io/c/tmpnam
相关文章:
- 如何在 的开头<x>和结尾<y>之间更改带有文件输出的字符串的值
- C++对象数组的文件输出
- bcdedit 文件输出不起作用,但其他命令可以
- 如何从文本文件输出数据?(学生成绩单计划)
- 使用 C++文件 I/O 输出 pdf 文件
- C 文件输出垃圾
- 从堆栈中读取字符后,如何修复不正确的文件输出
- C++:具有随机名称的文件输出
- 在命令提示符下看到换行符,但在文件输出中可以看到 相同的字符串
- 生成文件不会生成预期的文件输出
- C++11 fgetc 在"r+b"模式下使用时向我的文件输出 0
- 使用函数从文件输出
- GCC.obj文件输出不具有确定性(.debug_info,PROGPITS部分)
- C cstdiofile :: Writestring给出了不正确的文件输出
- C 输出:STD :: COUT和文件输出没有相同的内容
- GCC和MSVC之间的文件输出不一致
- C++文件输出奇怪的数字,并且部分代码没有运行
- 如何将特定字符从TXT文件输出到特定点
- C 调用从TXT文件输出信息的函数
- 将交易从文本文件输出到屏幕