C可以setw和setfill pad结束一个字符串?

C可以setw和setfill pad结束一个字符串?,第1张

概述有没有办法使setw和setfill pad结束一个字符串而不是前面? 我有一种情况,我正在打印这样的东西. CONSTANT TEXT variablesizeName1 .....:number1 CONSTANT TEXT varsizeName2 ..........:number2 我想添加一个变量“’.到最后 “CONSTANT TEXT variablesizeName#”,所 有没有办法使setw和setfill pad结束一个字符串而不是前面?

我有一种情况,我正在打印这样的东西.

CONSTANT TEXT variablesizename1 .....:number1  CONSTANT TEXT varsizename2 ..........:number2

我想添加一个变量“’.到最后

“CONSTANT TEXT variablesizename#”,所以我可以使“:number#”排队在屏幕上.

注意:我有一个数组“variablesizename#”,所以我知道最广泛的情况.

要么

我应该通过这样设置setw来手动执行

for( int x= 0; x < ARRAYSIZE; x++){string temp = string("CONSTANT TEXT ")+variabletext[x];cout <<  temp;cout << setw(MAXWIDTH - temp.length) << setfill('.') <<":";cout << Number<<"\n";}

我想这会做这个工作,但感觉很笨重.

想法?

解决方法 您可以使用 *** 纵器 std::left,std::right,and std::internal来选择填充字符的位置.

对于您的具体情况,可以这样做:

#include <iostream>#include <iomanip>#include <string>const char* C_TEXT = "Constant text ";const size_t MAXWIDTH = 10;voID print(const std::string& var_text,int num){    std::cout << C_TEXT              // align output to left,fill goes to right              << std::left << std::setw(MAXWIDTH) << std::setfill('.')              << var_text << ": " << num << '\n';}int main(){    print("1234567890",42);    print("12345",101);}

输出:

Constant text 1234567890: 42Constant text 12345.....: 101

编辑:
如链接中所述,std :: internal只能用整数,浮点和货币输出.例如,使用负整数,它将在负号和最左边的数字之间插入填充字符.

这个:

int32_t i = -1;std::cout << std::internal          << std::setfill('0')          << std::setw(11)  // max 10 digits + negative sign          << i << '\n';i = -123;std::cout << std::internal          << std::setfill('0')          << std::setw(11)          << i;

将输出

-0000000001-0000000123
总结

以上是内存溢出为你收集整理的C可以setw和setfill pad结束一个字符串?全部内容,希望文章能够帮你解决C可以setw和setfill pad结束一个字符串?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1233776.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存