2012-05-02 4 views
1

Это ожидаемый результат:Форматирование Cout Выход в C++

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'; 

К сожалению, мой Ouput грязный СЛОВО

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

Может кто-нибудь предложите мне решение для этого. Благодаря

+0

добавить '\ T' между' | 'и числами в WORD столбцах –

+0

Ваши три зарезервированных пространства становятся заполненными, поэтому он продолжает на право. – chris

ответ

2

Вместо

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'; 
2

Почему это не ::

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'; 
0

Делать это установить с левой стороны символ-заполнитель.

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; 
Смежные вопросы