|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|||||||||||||||||
Способы считывания строк из стандартного потока ввода09.03.2015, 13:10. Показов 13021. Ответов 9
Метки нет (Все метки)
Добрый день.
Предложите, пожалуйста, какие-нибудь более красивые способы считывания строк. Например, у нас имеется N строк (в каждой строке по три слова, разделённые пробелами): Я хочу считывать каждое слово в отдельную переменную типа string, чтобы обрабатывать его прямо на вводе. Я делаю это так:
Первый вариант меня устраивает больше, но мне не нравится его длинная запись. Но больше всего мне нравится запись из C++:
0
|
|||||||||||||||||
| 09.03.2015, 13:10 | |
|
Ответы с готовыми решениями:
9
Перегрузка стандартного потока ввода Считывание из стандартного потока ввода |
|
Антикодер
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
|
|
| 10.03.2015, 23:54 | |
|
Может быть то, что вы хотите находится в книге Александреску раздел 1.4 Массивы и ассоциативные массивы
0
|
|
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
||||||
| 11.03.2015, 00:16 [ТС] | ||||||
|
XRuZzz, по-моему, так не выйдет, чтобы с помощью метода byLine() и функции splitter можно было бы одновременно присваивать трём переменным типа string слова. Вы будете по-прежнему работать с каждым словом по очереди. Можно, конечно, запоминать слова в массив string'ов, но я хочу именно заносить слова в auto-переменные. Ещё не забывайте, что после использования метода byLine вы получите тип char[], который придётся как-то преобразовывать в string.
Явно, такая сложная конструкция не будет выглядеть как-то так :
0
|
||||||
|
Антикодер
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
|
||
| 11.03.2015, 00:45 | ||
|
Можно в D сделать такую же перегрузку оператора >>. Я не понимаю как можно считать слово, не считав всю строку. У меня есть пример кода посимвольного чтения, но это совсем не то... Но на основе такого кода, можно сделать обработку события "появления пробела"
0
|
||
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
||
| 11.03.2015, 01:45 [ТС] | ||
0
|
||
|
Антикодер
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
|
|
| 11.03.2015, 02:55 | |
|
так я в первой теме и занимался такой фигнёй Язык "D"
в конце концов пришёл к alias https://github.com/xruzzz/axt-... ter/main.d Кстати да - по второй ссылке по ходу ответ на ваш вопрос - форматированный ввод. сам уже забыл, что такое писал ![]() У меня 2 репозитория на гитхабе, и каждому соответствует вопрос: Первый репозиторий и первый вопрос - почему я не могу выйти, введя символ ☠. Правда отсутствие ответа меня не беспокоит. Второй тут Не работает hello world [dlang, derelict] Третий вопрос и репозиторий будет на тему «Как сделать простенькую p2p сеть на D»
0
|
|
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|||||||
| 11.03.2015, 03:21 [ТС] | |||||||
0
|
|||||||
|
Антикодер
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
|
||||||||||||||||||
| 11.03.2015, 06:04 | ||||||||||||||||||
Сообщение было отмечено Dennis Ritchie как решение
Решение
А форматированный ввод чем то не угодил[по ссылке на гитхаб]?
Об этом пишет Александреску, в русском издании 2012 года, это, например, страница 481 Конечно самый правильный способ, разбирать регулярными выражениями то, что вводит пользователь. Это модуль regex. Вероятно, есть способ с помощью регулярки, поместить слова сразу в набор переменных. Обычно языки программирования это позволяют. Добавлено через 7 минут Думаю, тут std_regex инфы по регуляркам должно хватить.
1
|
||||||||||||||||||
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
||||||||||||||||||||
| 11.03.2015, 06:25 [ТС] | ||||||||||||||||||||
![]() Вот это, то что нужно:
0
|
||||||||||||||||||||
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|||||||||||
| 19.03.2015, 00:56 [ТС] | |||||||||||
|
XRuZzz, вот то, что я хотел увидеть (хотя formattedRead() и не читает из потока ввода, но всё же):
0
|
|||||||||||
| 19.03.2015, 00:56 | |
|
Помогаю со студенческими работами здесь
10
Как правильно распознать команды со стандартного потока ввода
Как считать массив строк из стандартного ввода, если нет никакого сигнала об окончании ввода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|