0

我正在编写一个程序来为特定的图像格式编写头部。此图像格式需要 256 个字符作为其标题,然后是任何后续原始图像数据。但是我在填充空格以使标题长度为 256 个字符时遇到问题。

以下是我的问题的抽象:

char pad[256];
sprintf( pad, "header info:%s=%f", "scale", 2.3);
cout<<pad<<"data here"<<endl;

输出是:

header info:scale=2.300000data here

但是,我期望的结果是:

header info:scale=2.300000                            data here

其中“data here”出现在文件开头的 256 个字符之后。如何更改程序以填充字符数组中的空格?

4

2 回答 2

0

也许这可以帮助你。-左对齐文本的格式。例如,以下将左对齐固定宽度为 20 的浮动文本。默认空格字符用作填充。

sprintf( pad, "header info:%s=%-20f", "scale", 2.3);
于 2014-04-22T03:18:48.043 回答
0

做这个:

cout << setw(256) << left << pad << "data here" <<endl;

您可能需要#include <iomanip>.

顺便说一句,在您的“真实代码”中,您应该使用它snprintf来确保没有缓冲区溢出的机会,假设您%s将获得一些在运行时解决的参数。(或者最好用字符串流替换sprintf)。

于 2014-04-22T03:28:57.760 回答