Как взять символьный указатель из 20 символов для вывода содержимого плюс лишние пробелы? - PullRequest
0 голосов
/ 11 сентября 2018

Это мой первый вопрос, связанный с C ++, и я новичок в указателях символов и их использовании.Я думаю, что у меня это не так, но для назначения необходим вывод для этой программы:

enter image description here

Таким образом, каждое имя и фамилия являются символьным указателемиз 20 символов (я мог бы, вероятно, уменьшить его, но все что угодно), и когда я вывожу его сейчас, он выглядит как cout << stu[i]->first << " " << stu[i]->last << " " << (float)stu[i]->mean << endl; и выводит то же самое, что и выше, но с одним пробелом между каждым фрагментом данных.Как заставить его распечатать пробел в остальной части указателя на символ, чтобы он создавал красивые аккуратные столбцы?

Спасибо!

1 Ответ

0 голосов
/ 11 сентября 2018

В памяти нет магического пробела, на который указывает char*. Если вы хотите выровнять вывод, вы можете использовать std::setw():

#include <iostream>
#include <iomanip>

int main()
{
    char const *foo{ "Jamie" };
    char const *bar{ "Reynolds" };

    std::cout << std::setw(10) << foo << std::setw(10) << bar << '\n';
}
...