|
0 / 0 / 0
Регистрация: 19.03.2022
Сообщений: 57
|
||||||
Манипулятор setw и метод ввода строки getline05.09.2022, 22:24. Показов 2626. Ответов 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
|
|||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 07.09.2022, 10:30 | |
|
И в догоночку, завести константу для количества символов в строке и воспользоваться совета кота Алексея (в общих чертах).
Ибо я даже не могу протестировать ваш код, в 128 символов ))
0
|
|
|
фрилансер
6495 / 5726 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
|
||
| 07.09.2022, 10:31 | ||
|
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 07.09.2022, 10:31 | |
|
Shimon, если пока сложно то попробуй printf.
Легче не будет, но там вывод корректируется четче. Чисто как вариант
0
|
|
|
0 / 0 / 0
Регистрация: 19.03.2022
Сообщений: 57
|
|||
| 07.09.2022, 10:35 [ТС] | |||
|
В моем понимании я ввожу границу, дальше выравнивание по левому краю, дальше отступ от предыдущего символа (границы) до следующего (содержимого). Но что-то не работает, значит ошибка в моих рассуждениях, но пока не втыкаю, в чем. Добавлено через 3 минуты
0
|
|||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||||||
| 07.09.2022, 10:35 | |||||||
А так куча непонятных циферок, и что мне с ними делать ? Если в моей консоли 80 символов в ряду. Да и жесткие отступы также излишние. Делайте резиновую таблицу. Один раз сделали, и копипастите оттуда нужные части. p.s. Я давно уже таким не играюсь ...
0
|
|||||||
|
0 / 0 / 0
Регистрация: 19.03.2022
Сообщений: 57
|
||
| 07.09.2022, 10:37 [ТС] | ||
|
0
|
||
|
2405 / 1937 / 763
Регистрация: 27.07.2012
Сообщений: 5,576
|
||||||||||
| 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
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||||||||||||||||
| 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
|
||||||
|
2405 / 1937 / 763
Регистрация: 27.07.2012
Сообщений: 5,576
|
||
| 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 | |
|
Манипулятор ввода / вывода There are no arguments to 'setw' that depend on a template parameter, so a declaration of 'setw' must be available Написать программу «Манипулятор робота» так, чтобы она рисовала манипулятор из n сегментов Манипулятор ввода, который поочередно то считывает, то пропускает каждые десять символов Неправильный вывод UTF8 строки вместе с setw Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов
Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|