|
0 / 0 / 0
Регистрация: 20.02.2024
Сообщений: 10
|
||||||
Строки обрезаются границами терминала20.02.2024, 20:20. Показов 1820. Ответов 17
Здравствуйте. Такая беда. При выводе большой строки, состоящей из нескольких строк некоторые строки переносятся на границе терминала нормально, а некоторые просто срезаются. Не могу понять в чём беда.
Добавлено через 1 час 50 минут Если откомпилировать этот кусочек кода отдельно - происходит тоже самое. Так что проблема именно в нём. Могу с помощью ncurses, конечно, решить. Но хотелось бы знать что происходит именно в этом коде.
0
|
||||||
| 20.02.2024, 20:20 | |
|
Ответы с готовыми решениями:
17
Форма, обрезаются строки... При обновлении базы обрезаются строки Обрезаются строки при импорте данных |
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 21.02.2024, 00:45 | |
|
А что в файле?
0
|
|
|
0 / 0 / 0
Регистрация: 20.02.2024
Сообщений: 10
|
|
| 21.02.2024, 06:55 [ТС] | |
|
Обычный текст на кириллице в utf8 порядка 2500 символов
0
|
|
|
184 / 37 / 8
Регистрация: 14.04.2019
Сообщений: 238
|
|
| 21.02.2024, 08:35 | |
|
Наверняка какие-то байты кириллицы utf-8 являются управляющими символами для вывода (типа CR LF)
0
|
|
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,140
|
|||
| 21.02.2024, 09:04 | |||
|
Добавлено через 1 минуту также, если дело в пустых строках, то нужно проверять их на пустоту. И не добавлять
0
|
|||
|
0 / 0 / 0
Регистрация: 20.02.2024
Сообщений: 10
|
|
| 21.02.2024, 10:27 [ТС] | |
|
Дело не в управляющих символах т.к. после изменении размера терминала выдод обрезается в разных местах строки, но именно в правой границе терминала.
Вечером доберусь до дома - по колдую ещё спереводом строки. Но блин хочется понять меканику этого "бага" всё равно.
0
|
|
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,140
|
|
| 21.02.2024, 10:34 | |
|
VladimirVin, у меня такое предположение: без перевода строки строка получается, к примеру длиной 100500, а терминал умеет, к примеру, только 1024 непрерывно отображать. Ну, то есть, как непрерывно? При достижении правого края строка начинается слева в новой строке. А когда лимит в 1024 заканчивается, терминал бьёт переводом строки принудительно
0
|
|
|
0 / 0 / 0
Регистрация: 20.02.2024
Сообщений: 10
|
|
| 21.02.2024, 10:48 [ТС] | |
|
Посимвольное чтение из файла и вывод через noskipws работало адекватно. Вчера проверял
Добавлено через 55 секунд После работы дальше буду разбираться
0
|
|
|
0 / 0 / 0
Регистрация: 20.02.2024
Сообщений: 10
|
||||||
| 21.02.2024, 19:01 [ТС] | ||||||
|
Короче вот так:
Но терминал режет строки, а некоторые вообще пропускает от перевода строки до перевода строки. Пока у меня всё адекватно работает на посимвольном выводе. Но этот код я теперь не оставлю, буду дальше копать. Видать что-то с реализацией вывода самого терминала(MATE, кстати). Да. И "\r" в начале каждой считанной строки добавлял - ничего не поменялось. Добавлено через 4 минуты И ещё от длины строки это не зависит -- большие абзацы может выводить нормально а маленькие может выводить в одну строку и соответственно - режет. Добавлено через 7 минут Блин это не проблема конкретного терминала пробовал на XTerm и MATE - та же беда
0
|
||||||
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,140
|
|
| 21.02.2024, 19:18 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 20.02.2024
Сообщений: 10
|
|
| 21.02.2024, 19:28 [ТС] | |
|
Алексей1153, я и '\r', и '\n' добавлять пробовал
Вот один из файлов. Конкретно в этом режет первый абзац.
0
|
|
|
0 / 0 / 0
Регистрация: 20.02.2024
Сообщений: 10
|
|
| 21.02.2024, 19:30 [ТС] | |
|
самый короткий выбрал
0
|
|
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,140
|
||||||
| 21.02.2024, 19:59 | ||||||
Сообщение было отмечено VladimirVin как решение
Решение
VladimirVin, у тебя в файле от какой-то магии вместо '\n' везде стоит '\r'
вот так попробуй
пути свои подставить надо, разумеется
1
|
||||||
|
0 / 0 / 0
Регистрация: 20.02.2024
Сообщений: 10
|
|
| 21.02.2024, 20:15 [ТС] | |
|
Благодарю, всё работает. Значит всё дело было в этом. файлы писал не я. и даже не знаю в каким редактором
Добавлено через 2 минуты Алексей1153, дама говорит - просто копировала текст из Telegram в редактор и сохраняла)) видимо оттуда эта магия и взялась.
0
|
|
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,140
|
|
| 21.02.2024, 20:21 | |
|
VladimirVin, начинающая волшебница, всё с ней понятно
0
|
|
|
0 / 0 / 0
Регистрация: 20.02.2024
Сообщений: 10
|
|
| 21.02.2024, 20:28 [ТС] | |
|
Алексей1153, и всё таки не понятно, почему терминал так реагирует на '\r'. Обновлю-ка знания по терминалам.
0
|
|
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,140
|
|
| 21.02.2024, 20:41 | |
|
VladimirVin, потому что исторически
\r - это возврат каретки на начало строки , а '\n' - это перевод каретки на новую строку.Но современные терминалы и текстовые редакторы обрабатывают '\n' как возврат и перевод одновременно, поэтому достаточно одного '\n'
0
|
|
|
0 / 0 / 0
Регистрация: 20.02.2024
Сообщений: 10
|
|
| 21.02.2024, 21:11 [ТС] | |
|
Алексей1153, значит Telegram использует устаревшие спецсимволы. Благодарю ещё раз.
Добавлено через 5 минут Или это действительно магия))) Добавлено через 18 минут DedFriend, так и оказалось. Но не могу понять, если есть устаревший возврат каретки, то как могли исчезнуть переводы на новую строку. Добавлено через 1 минуту Но это уже другая история...
0
|
|
| 21.02.2024, 21:11 | |
|
Помогаю со студенческими работами здесь
18
Обрезаются строки при использовании crt
При конвертации данных из Акса2000 в ехель2007 обрезаются строки. Что делать?
Открыть вторую и третью консоль из первого терминала. Закрыть первую и третью консоли из под второго терминала Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|