Печать массива с отступом

166
26 июня 2022, 10:30

Всем здравствуйте. Такая проблема: печатается только первый элемент с отступом, а все остальные без отступа. Помогите, пожалуйста.

#include <iostream>
#include <Windows.h>
#include <iomanip>
#include <string>
using namespace std;
class C1
{
public:
    string myString;
    void inputString()
    {
        cout << "Укажіть рядок ";
        cin >> myString;
    }
    void outputString()
    {
        cout << myString << endl;
    }
};
class C2 : public C1
{
public:
    string *arrayStrings;
    int size;
    C2()
    {
        size = 5;
        arrayStrings = new string[size];
    }
    void inputArray()
    {
        cout << "Укажіть масив рядків ";
        for (int i = 0; i < size; i++)
        {
            cin >> arrayStrings[i];
        }
    }
    void outputArray()
    {
        for (int i = 0; i < size; i++)
        {
            cout << arrayStrings[i].c_str() << endl;
        }
    }
};
class C3 : public C2
{
private:
    int textColor;
    int backgroundColor;
    int marginLeft;
public:
    C3(int t, int b, int m)
    {
        textColor = t;
        backgroundColor = b;
        marginLeft = m;
    }
    void setColor()
    {
        HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(hStdOut, (WORD)(backgroundColor << 4) | textColor);
    }
    void setMargin()
    {
        for (int i = 0; i < size; i++)
        {
            cout << setw(marginLeft);
        }
    }
};
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    C1 a;
    a.inputString();
    a.outputString();
    C2 b;
    b.inputArray();
    b.outputArray();
    C3 c(14, 0, 15);
    c.setColor();
    c.setMargin();
    b.outputArray();
    return 0;
}

Answer 1

После использования <<endl, вывод начинается с начала новой строки. Как вариант, указать отступ и выводить как-то так

for(int i=0;i < size;i++)
{
    for(int j=0;j < marginLeft;j++)
    {
        cout<<" ";
    }
    cout<<arrayStrings[i];
}
READ ALSO
Управление другим процессом из дискорд-бота

Управление другим процессом из дискорд-бота

У меня есть приложение на Java, являющееся дискорд-ботомУ меня есть игровой сервер Arma 3

136
Поиск максимального и минимального элементов двумерного динамического массива

Поиск максимального и минимального элементов двумерного динамического массива

Как поменять местами максимальный и минимальный элемент?

116
Qt-диалог &amp; SQL на Lua

Qt-диалог & SQL на Lua

Хочу встроить Lua в свою программу, написанную на Qt/C++Нашел пока статьи и обсуждения о простом встраивании Lua в Си программу (пример)

144
Обработка пользовательского ввода С++

Обработка пользовательского ввода С++

При обработке пользовательского вода никак не могу сделать проверку на вводВот, например, таким образом я запрещаю ввод символов и разрешаю...

177