格式化写入WINAPI中的文件

Formatted Write to file in WINAPI

本文关键字:文件 WINAPI 格式化      更新时间:2023-10-16

使用WriteFile命令,我正在尝试按照我想要的设计写入文件。问题是我必须使用字符串或缓冲区写入文件。

我必须以格式打印

a1   a2   a3   a4   a5
b1   b2   b3   b4   b5
.
.
.

这是双重类型。我遇到的主要问题是连接字符串和数字。如果这是可能的,我可以简单地做,(如果我们说+是运算符,我们可以:)

a1^"   "^a2^"   "^   "^a4"n".

和循环,但我没有这个选项。

我感谢你的帮助。

一个选项是使用std::ostringstream(或用于宽字符的std::wostringstream)将数据格式化为字符串,然后将其写入文件。

std::ostringstream strm;
double a = 1.1;
double b = 2.2;
strm << "hello " << a << " world " << b;
DWORD written;
WriteFile(handle, strm.str().c_str(), strm.str().size(), &written, NULL);

将数据预格式化到缓冲区中。如果您真的只能使用WinAPI,那么您可以使用wsprintf。然后,当您的缓冲区中充满了正确格式化的数据时,使用WriteFile将整个数据一次性写入磁盘。然而,就其本身而言,WriteFile根本没有任何格式化或转换功能。