我有一种情况,我正在打印这样的东西.
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结束一个字符串?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)