我正在用C ++编写一个粒子跟踪器,它在数值流场中释放一个粒子,然后及时整合以计算粒子的新位置。
对于每个粒子大约10k时间步长允许(希望数百万)时间允许的多个粒子。在模拟过程中,我生成了一个双array1 [10k] [10]和int array2 [10k] [4],它们代表了每个时间步长中每个粒子的14个特征。
我的问题是如何将这样的'矩阵'写入记事本++可读的.txt文件(用于后处理)。两个数组都要合并到文件中,以便形成[10k] [14]矩阵。
就我个人而言,我只有fprintf的经验,但Visual Studio似乎对该功能有一些安全问题。我见过的其他功能是流(我认为更安全)和fwrite。
有人可以启发类似功能的优点和缺点吗?可能对我的问题(如果有的话)更好的选择。
亲切的问候,
EJG
答案 0 :(得分:3)
如果您未定义_CRT_SECURE_NO_WARNINGS,则较新的Microsoft编译器会为您提供各种“安全”警告。请参阅here和here
它建议使用的_s
版本是微软特定的,所以如果你想为另一个平台编译代码,你需要重新编写。
还有其他方法可以用C ++写入文件。您可以考虑使用C ++ std::ofstream
。
或者,您可以只写std::cout
并将程序输出流式传输到文件
myprogram.exe > output.txt
答案 1 :(得分:0)
如果您想使用fprintf,只需在源文件的顶部添加#pragma warning(disable:4996)
,它就不会抱怨您使用它。
否则你总是可以使用fprintf_s()或VS提供的替代方案。