|
Заблокирован
|
||||||
Можно ли в массив чаров считать строку полностью?12.09.2012, 12:10. Показов 4205. Ответов 19
Метки нет (Все метки)
У меня получается считать только первое слово, понимаю что есть функция getline() и еще я какую-то похожую видел, но желательно без этих средств обойтись, как-то бы компилятор убедить в массив считывать пока до конца введенной строчки не доползет....
0
|
||||||
| 12.09.2012, 12:10 | |
|
Ответы с готовыми решениями:
19
Считать символы из вектора в массив чаров
Массив строк как массив указателей на массивы чаров |
|
131 / 112 / 11
Регистрация: 01.09.2012
Сообщений: 288
|
|||||||
| 12.09.2012, 12:16 | |||||||
1
|
|||||||
| 12.09.2012, 12:18 | ||||||
|
Строки из потока читаются до первого разделителя (пробел, табуляция, перевод строки).
Чтобы получить всю строку, используй std::cin::getline(). Что за странный метод вывода строки? Чем не угодило:
1
|
||||||
|
Заблокирован
|
||
| 12.09.2012, 12:34 [ТС] | ||
![]() Добавлено через 3 минуты например массив из 10 чаров, ввожу литерал из 20 символов , а вывод до 100 чаров, ну и там получается "строка1 до 10" *ужасные знаки** "строка2 после 10" ***ужасные знаки **** Добавлено через 2 минуты А вообще то странно, происходит переполнение массива, а прога продолжает дальше считывать символы. как так? правда ошибка на экран вылазит, но это ничего
0
|
||
|
|
|
| 12.09.2012, 12:38 | |
|
cin.getline() из библиотэки потоков ввода вывода С++ и его объявления (а может и определения) покоятся в <iostream>, который ты подключил
1
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 12.09.2012, 12:39 | |
|
AnreyKazakov, std::cin.getline() а не std::getline(). Находится он в istream.
1
|
|
|
Заблокирован
|
||
| 12.09.2012, 13:03 [ТС] | ||
|
Язык программирования С++. Вводный курс. 4-е изд. (Стенли Липпман)[2007] , стр 106 Цитирую "Класс string обладает дополнительный вспомогательной функцией ввода-вывода" getline() И причем я всегда объявлял его как std::getline, и компилятор понимал всегда....
0
|
||
| 12.09.2012, 13:23 | |||||||
|
От Си осталось std::gets(), можешь её попробовать.
А глобальная функция std::getline работает с std::string.
1
|
|||||||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 12.09.2012, 13:25 | |
|
AnreyKazakov, открою небольшой секрет - cin, cout, cerr и clog - это объекта классов std::istream и std::ostream. У класса std::istream есть элемент-функция getline() ( std::istream::getline()). В качестве параметров она принимает указатель на char, размер и символ-ограничитель ( по-умолчанию - '\n' ). Так же в заголовочном файле <string>, есть функция std::getline(), перегруженная для ввода в объекты класса std::string. Она в свою очередь принимает в качестве параметров ссылку на объект класса std::istream, ссылку на объект класса std::string и символ-ограничитель.
Добавлено через 1 минуту Герц, нет такой функции, есть только std::istream::get().
1
|
|
| 12.09.2012, 13:42 | |||||||
|
http://www.cplusplus.com/refer... m/getline/ъ http://www.cplusplus.com/reference/string/getline/ Пожалуйста:
1
|
|||||||
|
154 / 138 / 34
Регистрация: 23.05.2009
Сообщений: 275
|
|
| 12.09.2012, 13:45 | |
|
Герц, std::gets()
1
|
|
| 12.09.2012, 13:46 | |
|
Есть такая функция. Я четко сказал, что это наследие от C.
http://liveworkspace.org/code/... 5f0072b1af
1
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 12.09.2012, 13:52 | |
|
Герц, извиняюсь, перепутал, думал какая то борландовская. В любом случае она устарела, абсолютно не контролируемая. Не нужно ее использовать.
1
|
|
| 12.09.2012, 13:56 | |
|
Не по теме: Человек сказал, что ему нужно использовать C строки и никаких <string> :-)
1
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 12.09.2012, 13:58 | |
|
Герц, это не повод использовать данную функцию. Для этого есть istream::getline() ( если нужно что бы символ-ограничитель отбрасывался ) и istream::get() ( если нужно что бы символ-ограничитель остался в потоке ).
1
|
|
|
Заблокирован
|
|||||||||||
| 12.09.2012, 14:59 [ТС] | |||||||||||
|
Спасибо всем, в общем переписал вот так:
0
|
|||||||||||
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
| 12.09.2012, 15:10 | |
|
Правильно. Если не хватает размера, то надо расширять массив. И всё это уже есть в std::string.
1
|
|
|
154 / 138 / 34
Регистрация: 23.05.2009
Сообщений: 275
|
||||||
| 12.09.2012, 15:12 | ||||||
|
Можно собезьянничать:
1
|
||||||
|
Заблокирован
|
|||||||
| 12.09.2012, 15:27 [ТС] | |||||||
0
|
|||||||
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
| 12.09.2012, 16:21 | |
|
Вызвать метод gcount() сразу же после getline(), он скажет, сколько байт было реально считано и записано. (Естессно, их будет не больше 999 + один нулевой в конце — в итоге тысяча, передаваемая как аргумент в getline.) Учтите, что '\n' в конце, если лимит в 999 символов не наступит раньше, читается из потока, но не пишется в строку (и не входит в значение gcount()). Всё, что осталось в потоке свыше 999 символов, там и останется. Можно достать следующим getline().
0
|
|
| 12.09.2012, 16:21 | |
|
Помогаю со студенческими работами здесь
20
Очистить массив чаров Можно ли считать с консоли строку по шаблону? Можно ли с помощью JS считать get-строку? считать строку чисел в массив
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|