在char数组中填充空格

Padding with spaces in char array

本文关键字:填充 空格 数组 char      更新时间:2023-10-16

我正在编写一个程序,为特定的图像格式编写头。此图像格式要求在任何后续原始图像数据之前有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

其中"此处的数据"出现在文件开头的256个字符之后。如何更改程序以填充字符数组中的空格?

这样做:

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

您可能需要#include <iomanip>

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

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

sprintf( pad, "header info:%s=%-20f", "scale", 2.3);