Ввод длинной строки с клавиатуры, Как ввести строку длиной 1100 символов с клавиатуры |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Ввод длинной строки с клавиатуры, Как ввести строку длиной 1100 символов с клавиатуры |
Tan |
Сообщение
#1
|
Профи Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: 10 |
1. Забавное задание, в чём его смысл ?
2. Именно если ввести то просто посимвольно считываешь и потом можно скинуть в массив чаров и вывести. -------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
Perfez |
Сообщение
#2
|
Бывалый Группа: Пользователи Сообщений: 231 Пол: Женский Репутация: 6 |
Если я не ошибаюсь, такое громадище с клавиатуры ты вряд ли сможешь ввести:ввод с клавиатуры в Паскале имеет буфер, как и всё на свете имеюший определённые границы... так что понапрасну не трудись-лучше работать с файлом, хотя и это несколько неудобно... но можно привыкнуть ко всему, вроде .Смотри Файлы.
Сообщение отредактировано: Perfez - |
volvo |
Сообщение
#3
|
Гость |
Цитата так что понапрасну не трудись Кто-то запрещает работать с PChar и посимвольным вводом (через ReadKey)? Нет... Тем более, что нечто подобное (если я не ошибаюсь - для строк до 400 символов) уже спрашивали, попробуй поискать (это к автору темы) ... |
anchik |
Сообщение
#4
|
Группа: Пользователи Сообщений: 2 Пол: Женский Репутация: 0 |
1. Забавное задание, в чём его смысл ? 2. Именно если ввести то просто посимвольно считываешь и потом можно скинуть в массив чаров и вывести. Это часть решения задчки. Из файла считать могу, но такое условие в задаче, чтобы ввод с клавиатуры А как его посимвольно считывать? Я, например, писала так:
Как можно посимвольно считать? Или надо readLn внутрь цикла поставить, считывать символы и складывать их в массив длиной 1100? |
Tan |
Сообщение
#5
|
Профи Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: 10 |
Ну условие цикла сам под задание подредактируй. А так по идее если ты работать будешь с каждым элементом в отдельности, то создай массив чаров ms : array [1..1100] of char и после чтения пиши туда свой символ. Очень интересно для решения какого задания ты используешь такую операцию, отпиши главное задание если не трудно. Возможно это не лучший метод. Сообщение отредактировано: Tan - -------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
Malice |
Сообщение
#6
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
Можно приспособить вот такой вариант:
{$m 1024,0,65536} Все введенное будет записано в файл test.$$$. Окончание ввода- Ctrl+Z, Enter. За то в качестве бонуса текст может быть многострочным |
anchik |
Сообщение
#7
|
Группа: Пользователи Сообщений: 2 Пол: Женский Репутация: 0 |
Ну условие цикла сам под задание подредактируй. А так по идее если ты работать будешь с каждым элементом в отдельности, то создай массив чаров ms : array [1..1100] of char и после чтения пиши туда свой символ. Очень интересно для решения какого задания ты используешь такую операцию, отпиши главное задание если не трудно. Возможно это не лучший метод. Упс. Запрещено использовать CRT. Что делать, если и файл не использовать? |
Гость |
Сообщение
#8
|
Гость |
Можно приспособить вот такой вариант: {$m 1024,0,65536} Все введенное будет записано в файл test.$$$. Окончание ввода- Ctrl+Z, Enter. За то в качестве бонуса текст может быть многострочным Спасибо! Все равно вопрос остается открытым: как сделать без записи в файл? |
Malice |
Сообщение
#9
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
Делай тогда как Tan показал, readkey сделай сам своей функцией на асме. Выглядеть будет примерно так:
function readkey:char; assembler; |
tchib |
Сообщение
#10
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: 0 |
На сколько я знаю, максимальная длина строки 255 символов, поэтому, как ни крути, сделать ее такой невозможно. Значит остается только массив из символов длинной 1100 элементов.
Поскольку CRT использовать нельзя, то остается только read. В цикле вводим каждый символ и все... Цитата в Паскале имеет буфер, как и всё на свете имеюший определённые границы... так что понапрасну не трудись-лучше работать с файлом этот буффер и есть файл, причем текстовый, и процедура read без указания файловой переменной читает из файла input.txt, хотя на счет разширения точно сказать не могу. |
Malice |
Сообщение
#11
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
Поскольку CRT использовать нельзя, то остается только read. В цикле вводим каждый символ и все... Не получится.. Первый же Read(c:char) будет вводить в буфер всю строку и ждать enter-a. После энтера прочитается в "c" первый символ этой строки, следующие read-ы будут брать символы из буфера. Т.к. длина буфера ограничена (127 символов) - длина строки будет таже. |
tchib |
Сообщение
#12
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: 0 |
так я и не говорю вводить всю строку. Можно просто ввести символ, нажать энтер, и так 1100 раз
|
Текстовая версия | 23.12.2024 20:45 |