截至目前,我正在使用下面的线来打印出点
fprintf( stdout, "%-40s[%d]", tag, data);
Run Code Online (Sandbox Code Playgroud)
我期待输出会像下面这样,
Number of cards..................................[500] Fixed prize amount [in whole dollars]............[10] Is this a high winner prize?.....................[yes]
如何使用fprintf/printf打印短划线或点?
Ate*_*ral 10
更快的方法:
如果事先知道您需要的最大填充量(通常是在格式化固定宽度表时的情况,例如您所拥有的那个),则可以使用静态"padder"字符串并且只是抓住一大块.这比调用printf
或cout
循环更快.
static const char padder[] = "......................"; // Many chars
size_t title_len = strlen(title);
size_t pad_amount = sizeof(padder) - 1 - title_len;
printf(title); // Output title
if (pad_amount > 0) {
printf(padder + title_len); // Chop!
}
printf("[%d]", data);
Run Code Online (Sandbox Code Playgroud)
你甚至可以在一个声明中做到这一点,有一些信念的飞跃:
printf("%s%s[%d]", title, padder + strlen(title), data);
Run Code Online (Sandbox Code Playgroud)
您可以使用iostreams而不是printf轻松完成此操作
cout << setw(40) << setfill('.') << left << tag[i] << '[' << data[i] << ']' << endl;
Run Code Online (Sandbox Code Playgroud)
或者,如果你真的需要使用fprintf(比如,你传递了一个FILE*来写)
strstream str;
str << setw(40) << setfill('.') << left << tag[i] << '[' << data[i] << ']' << endl;
printf(%s", str.str());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10205 次 |
最近记录: |