Выравнивание по центру вывод в с++

259
22 марта 2018, 09:18

Нужна помощь в форматном выводе. Нужно устанавливать фиксированую ширину поля. И выравнивать по центру слово. Пересмотрел форматный вывод ничего не нашел. Нужен пример кода.

Answer 1

Ну например с помощью манипуляторов

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{   
    for (int i = 0; i < 5; ++i)
    cout <<'|' << setw(10)  << "word1" << setw(5) << '|' 
         << setw(10)  << "word2" << setw(5) << '|' << endl;
    return 0;
}

слова "word1" и "word2" будут находится в середине между символами '|'

Answer 2

При условии, что все слова будут либо четные, либо нечетные.

#include <iostream>
#include <string>
using namespace std;
void PrintWord(const string& s){
    int width_field = 12; //ширина поля
    string v(width_field, '.'); //для наглядности заполняем точками
    string v1;
    int l_word = s.size();
    int l_field = v.size();
    int step = (l_field - l_word)/2;
    for(int i = 0; i < l_word; i++){
        v1.push_back(s[i]);
    }
    copy(v1.begin(), v1.end(),v.begin()+step);
    for(auto x : v){
        cout << x;
    }
    cout << endl;
}
int main() {
//Пример вывода
    PrintWord("ad"); //2
    PrintWord("admi"); //4
    PrintWord("admira"); //6
    PrintWord("admirati"); //8
    PrintWord("admiration"); //10
    PrintWord("a"); //1
    PrintWord("adm"); //3
    PrintWord("admir"); //5
    PrintWord("admirat"); //7
    PrintWord("admiratio"); //9
    return 0;
}
READ ALSO
Помогите новичку C++ [требует правки]

Помогите новичку C++ [требует правки]

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

206
Error: no matching function for call to ‘Triangle::Triangle(double, double, double)

Error: no matching function for call to ‘Triangle::Triangle(double, double, double)

Подскажите пожалуйста, что не так, а то вроде бы типичный код, а ошибка одна и та же постоянно, если что OS Linux Ubuntu, IDE AnjutaЗаранее спасибо за ответы

189
Каким образом распакавать bz2 архив С++/Qt?

Каким образом распакавать bz2 архив С++/Qt?

Необходимо распаковать архивbz2, желательно без внешних зависимостей

209
Указатель на метод класса внутри класса

Указатель на метод класса внутри класса

Мне понадобилась масса таймеров на чистом с++Для решения задачи я пытаюсь использовать список, элементы которого содержат указатели на функции...

216