cout格式化

Bob*_*obS 29 c++ string format

我很确定这是一个关于格式化的简单问题,但这就是我想要完成的事情:

我想用cout将数据输出到屏幕上.我想以表格格式输出.我的意思是列和行应该正确对齐.例:

Test                 1
Test2                2
Iamlongverylongblah  2
Etc                  1
Run Code Online (Sandbox Code Playgroud)

我只关心单独的行,所以我现在输出的行(不工作)是

cout << var1 <<"\ t\t"<< var2 << endl;

这给了我类似的东西:

Test                 1
Test2                  2
Iamlongverylongblah         2
Etc                  1
Run Code Online (Sandbox Code Playgroud)

Eug*_*ota 52

setw.

#include <iostream>
#include <iomanip>
using namespace std;

int main () {
  cout << setw(21) << left << "Test"    << 1 << endl;
  cout << setw(21) << left << "Test2"   << 2 << endl;
  cout << setw(21) << left << "Iamlongverylongblah"     << 2 << endl;
  cout << setw(21) << left << "Etc"     << 1 << endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

  • std :: left不会在每个格式化的输出上重置,您只需一次即可。(流的宽度被重置。) (2认同)

Leo*_*ans 10

我建议使用Boost格式.使用这样的东西:

cout << format("%|1$30| %2%") % var1 % var2;
Run Code Online (Sandbox Code Playgroud)