|
0 / 0 / 0
Регистрация: 19.03.2022
Сообщений: 57
|
||||||
Манипулятор setw и метод ввода строки getline05.09.2022, 22:24. Показов 2336. Ответов 33
Всем доброго времени суток! Столкнулся со следующей проблемой.
Задача в "двух словах". Необходимо создать структуру, характеризующую работника, одним из полей которой имеется имя типа std::string. Далее создается массив структур в цикле, когда пользователь прекращает ввод, структуры из массива должны выводиться в консоль в виде таблицы. Для структуры я решил перегрузить ввод и вывод. Собственно, ниже код:
1. Как в перегрузке оператора ввода сделать так, чтобы при вводе имени можно было разделять пробелом имя и фамилию? В моем варианте просто при вводе структуры ничего не вводится или только первая часть до пробела, а если ввод в цикле, то происходит зацикливание, пробовал std::getline, но не помогает. 2. При перегрузке оператора вывода не могу выровнять таблицу, по какой-то причине не добавляются отступы перед s_number. Прошу разъяснить, что не правильно, а также как исправить.
0
|
||||||
| 05.09.2022, 22:24 | |
|
Ответы с готовыми решениями:
33
Setw() манипулятор Не работает манипулятор setw(n) манипулятор ввода |
|
0 / 0 / 0
Регистрация: 19.03.2022
Сообщений: 57
|
|||
| 07.09.2022, 10:26 [ТС] | |||
|
0
|
|||
|
Заблокирован
|
|
| 07.09.2022, 10:30 | |
|
И в догоночку, завести константу для количества символов в строке и воспользоваться совета кота Алексея (в общих чертах).
Ибо я даже не могу протестировать ваш код, в 128 символов ))
0
|
|
|
фрилансер
6442 / 5636 / 1127
Регистрация: 11.10.2019
Сообщений: 14,982
|
||
| 07.09.2022, 10:31 | ||
|
0
|
||
|
Заблокирован
|
|
| 07.09.2022, 10:31 | |
|
Shimon, если пока сложно то попробуй printf.
Легче не будет, но там вывод корректируется четче. Чисто как вариант
0
|
|
|
0 / 0 / 0
Регистрация: 19.03.2022
Сообщений: 57
|
|||
| 07.09.2022, 10:35 [ТС] | |||
|
В моем понимании я ввожу границу, дальше выравнивание по левому краю, дальше отступ от предыдущего символа (границы) до следующего (содержимого). Но что-то не работает, значит ошибка в моих рассуждениях, но пока не втыкаю, в чем. Добавлено через 3 минуты
0
|
|||
|
Заблокирован
|
|||||||
| 07.09.2022, 10:35 | |||||||
А так куча непонятных циферок, и что мне с ними делать ? Если в моей консоли 80 символов в ряду. Да и жесткие отступы также излишние. Делайте резиновую таблицу. Один раз сделали, и копипастите оттуда нужные части. p.s. Я давно уже таким не играюсь ...
0
|
|||||||
|
0 / 0 / 0
Регистрация: 19.03.2022
Сообщений: 57
|
||
| 07.09.2022, 10:37 [ТС] | ||
|
0
|
||
|
2393 / 1913 / 763
Регистрация: 27.07.2012
Сообщений: 5,557
|
||||||||||
| 07.09.2022, 10:37 | ||||||||||
"|" ОКstd::left ОКstd::setw(22) FAIL. Это не отступ, а ширина следующего содержимого. Далее у вас выведется "100500" и 22 - strlen("100500") пробелов.
0
|
||||||||||
|
0 / 0 / 0
Регистрация: 19.03.2022
Сообщений: 57
|
||
| 07.09.2022, 10:38 [ТС] | ||
|
0
|
||
|
Заблокирован
|
||||||||||||||||||
| 07.09.2022, 10:46 | ||||||||||||||||||
|
Ну епическая сила ...
Добавлено через 3 минуты Shimon, и если просто нужен фиксированный отступ :
![]() Добавлено через 3 минуты Ах да, про именование часто использованных отступов.
0
|
||||||||||||||||||
|
0 / 0 / 0
Регистрация: 19.03.2022
Сообщений: 57
|
|||
| 07.09.2022, 10:50 [ТС] | |||
опа, а вот тут-то я и ошибался)))Буду исправлять, потом отпишу, что получится...
0
|
|||
|
0 / 0 / 0
Регистрация: 19.03.2022
Сообщений: 57
|
||||||
| 07.09.2022, 11:07 [ТС] | ||||||
|
Докладываю о промежуточных результатах...
Вот код по заполнению строк:
0
|
||||||
|
2393 / 1913 / 763
Регистрация: 27.07.2012
Сообщений: 5,557
|
||
| 07.09.2022, 12:25 | ||
![]() Строку с чертой можно вывести проще: std::cout << std::string(123, '-');
0
|
||
|
0 / 0 / 0
Регистрация: 19.03.2022
Сообщений: 57
|
|
| 07.09.2022, 17:07 [ТС] | |
|
Вроде бы все получилось, ну, по крайней мере, пока содержимое меньше ширины столбца. Скрин прикрепляю.
Но какое-то топорное решение... [ quote="Алексей1153;16437546"]копим вектор векторов строк (таблица), затем для каждой колонки считаем максимальную ширину. При распечатке таблицы под эту ширину подгонять элементы пробелами или тем же setw[/quote] А не могли бы поподробнее изложить суть? Что у меня должно храниться в векторах-"строках таблицы" и как потом это выводить с учетом заполнения?
0
|
|
| 07.09.2022, 17:07 | |
|
Помогаю со студенческими работами здесь
34
Манипулятор ввода / вывода There are no arguments to 'setw' that depend on a template parameter, so a declaration of 'setw' must be available Написать программу «Манипулятор робота» так, чтобы она рисовала манипулятор из n сегментов Манипулятор ввода, который поочередно то считывает, то пропускает каждые десять символов Неправильный вывод UTF8 строки вместе с setw Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|