在char数组中填充空格

时间:2014-04-22 02:49:52

标签: c++ character-arrays

我正在编写一个程序来编写特定图像格式的头文件。此图像格式在任何后续原始图像数据之前需要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个字符之后。 如何更改程序以填充字符数组中的空白区域?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

这样做:

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

您可能需要#include <iomanip>

BTW在您的&#34;真实代码&#34;你应该使用snprintf来确保没有缓冲区溢出的可能性,假设你的%s会得到一些在运行时得出的论据。 (或者最好用字符串流替换sprintf。)