在C++中格式化 Cout 输出

Formatting Cout Output in C++

本文关键字:Cout 输出 格式化 C++      更新时间:2023-10-16

这是预期的输出:

COUNT | WORD 
------+------
   1  | .3
   1  | .3.4
   1  | 3
   2  | 12.34
   1  | test1.12.34
   3  | this

这是我的正确代码:

std::cout << "COUNT | WORD" << 'n';
std::cout << "------+------" << 'n';
std::cout << std::setw(4) << "1" << std::setw(3) << '|' <<  std::setw(3) << ".3" << 'n';
std::cout << std::setw(4) << "1" << std::setw(3) << '|' <<  std::setw(3) << ".3.4" << 'n';
std::cout << std::setw(4) << "1" << std::setw(3) << '|' <<  std::setw(3) << "3" << 'n';
std::cout << std::setw(4) << "2" << std::setw(3) << '|' <<  std::setw(3) << "12.34" << 'n';
std::cout << std::setw(4) << "1" << std::setw(3) << '|' <<  std::setw(3) << "test1.12.34" << 'n';
std::cout << std::setw(4) << "3" << std::setw(3) << '|' <<  std::setw(3) << "this" << 'n';

不幸的是,我的输出是混乱的单词

COUNT | WORD
------+------
   1  | .3
   1  |.3.4
   1  |  3
   2  |12.34
   1  |test1.12.34
   2  |this

谁能建议我一个解决方案。谢谢

而不是有

std::cout << std::setw(4) << "1" << std::setw(3) << '|' <<  std::setw(3) << ".3" << 'n';

对于每一行,在"|"字符后添加一个空格:

std::cout << std::setw(4) << "1" << std::setw(3) << "| " <<  std::setw(3) << ".3" << 'n';

为什么不是这个 ::

std::cout << "COUNT | WORD" << 'n';
std::cout << "------+------" << 'n';
std::cout << std::setw(4) << "1" << std::setw(3) << '|' <<  ' ' << ".3" << 'n';
std::cout << std::setw(4) << "1" << std::setw(3) << '|' <<  ' ' << ".3.4" << 'n';
std::cout << std::setw(4) << "1" << std::setw(3) << '|' <<  ' ' << "3" << 'n';
std::cout << std::setw(4) << "2" << std::setw(3) << '|' <<  ' ' << "12.34" << 'n';
std::cout << std::setw(4) << "1" << std::setw(3) << '|' <<  ' ' << "test1.12.34" << 'n';
std::cout << std::setw(4) << "3" << std::setw(3) << '|' <<  ' ' << "this" << 'n';

这样做将设置左侧填充字符。

cout.fill('-');
cout.width(40);
cout<< "LINE1" <<endl;
cout.fill('-');
cout.width(40);
cout<< 3 <<endl;
cout.fill('-');
cout.width(40);
cout<< 3.4 <<endl;
cout.fill('-');
cout.width(40);
cout<< "TEST " << 12.34 <<endl;