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