0

我正在用 C++ 编写一个粒子跟踪器,它在数值流场中释放一个粒子,然后及时积分以计算粒子的新位置。

这是对尽可能多的粒子进行的(希望是数百万),每个粒子大约有 10k 时间步长。在模拟过程中,我生成了一个 double array1[10k][10] 和 int array2[10k][4],它们代表每个粒子在每个时间步长的 14 个特征。

我的问题是如何将这样的“矩阵”写入记事本++ 可读的 .txt 文件(用于后处理)。两个数组都将合并到文件中,从而形成 [10k][14] 矩阵。

就我个人而言,我只使用过 fprintf,但 Visual Studio 似乎对该功能存在一些安全问题。我见过的其他功能是流(我想更安全)和 fwrite。

有人可以启发类似功能的优缺点吗?对于我的问题,可能有更好的选择(如果有的话)。

亲切的问候,

EJG

4

2 回答 2

3

如果您未定义 _CRT_SECURE_NO_WARNINGS,较新的 Microsoft 编译器会给您各种“安全”警告。看这里这里

它建议使用的_s版本是 microsoft 特定的,因此如果您想为另一个平台编译代码,则需要重新编写。

还有其他方法可以在 C++ 中写入文件。您可以考虑改用 C++ std::ofstream

或者,您可以只写入std::cout程序输出并将其流式传输到文件

myprogram.exe > output.txt
于 2013-08-28T08:33:22.720 回答
0

如果您想使用 fprintf,只需#pragma warning(disable:4996)在源文件顶部添加,它不会抱怨您使用它。

否则,您始终可以使用 fprintf_s() 或 VS 提供的任何替代方法。

于 2013-08-28T08:30:43.687 回答