2016-05-06 3 views
0

У меня есть следующий код, чтобы напечатать:Как сделать распечатку, как таблицу?

cout<<current->bookId<<"\t\t"<<current->bookName<<"\t\t"<<current->year<<"\t\t"; 
cout<<"Checked out by student "<<current->storedBy<<endl; 

Похоже, что этот

BookId   BookName    Year   Status 
1000   Machine Learning    1997   Checked out by student 21000000 
1200   Data Mining    1991   Checked out by student 21000020 
1400   C++ How to Program    2005   Checked out by student 21000020 
1500   Pattern Recognition    2000   Checked out by student 21000000 

Что я должен сделать, чтобы сделать это так:

BookId   BookName      Year   Status 
1000   Machine Learning    1997   Checked out by student 21000000 
1200   Data Mining      1991   Checked out by student 21000020 
1400   C++ How to Program    2005   Checked out by student 21000020 
1500   Pattern Recognition    2000   Checked out by student 21000000 

ответ

4

Set field widthstd::setw является то, что ты ищешь.

Пример использования:

#include <iostream>  // std::cout, std::endl 
#include <iomanip>  // std::setw 

int main() { 
    std::cout << std::setw(10) << "test" << std::endl; 
    return 0; 
} 

Поскольку параметр равен 10, поэтому std::setw будет отображать "test" на 10-й, 11-й, 12-й, 13-й символы экрана.

В вашем случае, вы будете использовать рутину похожее на это, и с некоторыми пробами и ошибками, вы добьетесь того, что вы хотите:

std::cout << std::setw(10) << "col1" << std::setw(5) << "col2" << std::endl; 
+1

... и использовать 'зОго :: левого/зЬй :: right "для выравнивания вывода влево или вправо. –

Смежные вопросы