C++ Вопрос Как отредактировать код, чтобы выводилась ровная таблица?

Я качаю зелень, набираю массу.
Пользователь
Статус
Оффлайн
Регистрация
14 Фев 2019
Сообщения
80
Реакции[?]
39
Поинты[?]
3K
написал код для практики, но никак не могу сделать так, чтобы таблица выводилась ровно. Значения под комментарием в самом конце кода. Кто может, помогите, пожалуйста. Может стоило использовать метод getline, ибо в cin ограниченные буферы.

C++:
#include<stdio.h>
#include<clocale>
#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    setlocale(LC_ALL, "rus");
    system("chcp 1251 > nul");

    char name1[10]{}, name2[10]{}, name3[10]{};
    char sc1{}, sc2{}, sc3{};
    long long cnt1{}, cnt2{}, cnt3{};
    float sq1{}, sq2{}, sq3{};

    cout << "1.Введите: фирму, количество, объём, часть >";
    cin >> name1 >> sc1 >> cnt1 >> sq1;
    cout << "2.Введите: фирму, количество, объём, часть >";
    cin >> name2 >> sc2 >> cnt2 >> sq2;
    cout << "3.Введите: фирму, количество, объём, часть >";
    cin >> name3 >> sc3 >> cnt3 >> sq3;
    cout << setw(31) << "|------------------------------------------------------------------------|\n";
    cout << setw(31) << "|                      Фирмы - производители СКБД                        |\n";
    cout << setw(31) << "|------------------------------------------------------------------------|\n";
    cout << setw(10) << "| Фирма " << setw(5) << "| Количесво. Продуктов " << setw(5) << "| Годовой объём продажи " << setw(5) << "| Часть рынка |\n";
    cout << setw(31) << "|-----------|------------------------|------------------------|--------------|\n";
    cout << setw(10) << "| " << setw(11) << name1 << setw(3) << "| " << setw(15) << sc1 << setw(3) << "| " << setw(16) << cnt1 << setw(3) << "| " << setw(12) << sq1 << setw(3) << "|\n";
    cout << setw(31) << "|-----------|------------------------|------------------------|--------------|\n";
    cout << setw(10) << "| " << setw(11) << name2 << setw(3) << "| " << setw(15) << sc2 << setw(3) << "| " << setw(16) << cnt2 << setw(3) << "| " << setw(12) << sq2 << setw(3) << "|\n";
    cout << setw(31) << "|-----------|------------------------|------------------------|--------------|\n";
    cout << setw(10) << "| " << setw(11) << name3 << setw(3) << "| " << setw(15) << sc3 << setw(3) << "| " << setw(16) << cnt3 << setw(3) << "| " << setw(12) << sq3 << setw(3) << "|\n";
    cout << setw(31) << "|-----------|------------------------|------------------------|--------------|\n";
    cout << setw(31) << "| Примечание: по данным Gartner Group за 1999г |\n";
    cout << setw(31) << "--------------------------------------------------------------------------\n";
    return 0;
}
/*
Oracle 1 2488000000 31.1
IBM 3 2391500000 29.9
Microsoft 2 1048000000 13.1

*/
 
Сверху Снизу