63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
1 | |
Считать строку с консоли18.09.2014, 10:13. Показов 12704. Ответов 30
Метки нет (Все метки)
такая задачка, препод хочет чтобы мы не юзали класс string, а юзали массивы символов, причем только динамические (лаба такая просто), запретил выделять буфер (например char* str = new char[100]), так как же мне считать строку с консоли??? читать посимвольно с помощью cin.get и каждый раз перевыделять память на 1 символ? или может есть какая то специальная функция для такого случая?
Добавлено через 1 минуту потому что getline вроде бы требует задать количество считываемых символов, а я не знаю сколько их будет... Добавлено через 48 секунд хотя вот со string я бы сделал так: getline(cin, str) и оно канает, может можно и с массивом как то так заюзать?
0
|
18.09.2014, 10:13 | |
Ответы с готовыми решениями:
30
Считать строку из консоли Считать строку из консоли Считать строку из консоли Как считать строку с консоли? |
189 / 177 / 111
Регистрация: 22.06.2009
Сообщений: 533
|
||||||
18.09.2014, 18:40 | 21 | |||||
zss ну хоть строку вводи, выводи, в чем проблема.. другой вопрос, что скорее всего это не безопасно.. (хотя на сколько я помню new оперирует с "кучей"),
ПЫСЭ да и зачем вы все там поменяли.. смысл тоже поменялся Добавлено через 8 минут я имел ввиду использовать "char* i = new char;" а не "char* i = new char[N];" но работать с переменной i как с массивом char, во всяком случае, изначальной код что я скинул у меня пашет (в иострим о печатался) и в указатель i сливается вся строка... Добавлено через 14 минут
0
|
Почетный модератор
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|
18.09.2014, 20:36 | 22 |
а как звучал этот запрет? Просто я все больше и больше склоняюсь к мысли, что задание было наподобие такого: считать посимвольно в массив строку с консоли, нет?
а что мы там должны увидеть, собственно? Ошибку сегментации?
0
|
18775 / 9786 / 2394
Регистрация: 30.01.2014
Сообщений: 17,177
|
|
18.09.2014, 20:45 | 23 |
0
|
189 / 177 / 111
Регистрация: 22.06.2009
Сообщений: 533
|
|
19.09.2014, 03:04 | 24 |
Да, возможно он не надежен, но и в условии ничего не сказанно о надежности.. лишь предложел некий выход из ситуации, для исполнения каприза препода,..И поверьте это работает. )) а что предложили вы?? только умничать горазды. С уважением.
0
|
Модератор
|
|
19.09.2014, 07:28 | 25 |
Страуструпу тогда тоже руки отрубите:
Сообщение от Бьярне Страуструп
Это у Вас так благодарность проявляется?
0
|
Почетный модератор
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
19.09.2014, 10:10 | 26 | |||||
Ну да, правильно) Об этом обычно не упоминают, значит можно везде лепить код на "авось сработает", железно
предложил уточнить задание: Имхо, это две взаимоисключающие фразы gru74ik, думаю, что в данном случае это просто для более понятного кода. Практически на 100% уверен, что сам Страуструп, если бы писал такую программу не для книги, а вообще, написал бы как-то так:
а вот еще несколько примеров с множественными возвратами Определить, является ли натуральное число n степенью числа 3
0
|
|
19.09.2014, 14:20
#27
|
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||||||
20.09.2014, 19:01 [ТС] | 28 | |||||
нет...
да именно так нет, смысл вообще не в работе со строками, а в классах, просто препод придрался, а я педант =) это не была грубость имхо, я лишь указал что такое построение кода в корни неверно, во всяком случае меня так учили... шта?? ниче не понял -_- вот короче в итоге я извратился так:
так теперь еще вопросы возникли: 1. getchar - не из плюсов, желательно ее заменить на что то более плюсовое... кто нибудь знает какой то аналог на плюсах? я знаю только cin.get, но он ждет нажатия, а мне нужно чтобы считывалось посимвольно после enter-а как в getchar... можно конечно попробовать накидать аналог getchar на плюсах, но может есть что то готовое? 2. мне там дальше надо сделать аналогичное считывание из текстового файла (т.е. также до '\n'), можно ли как то приспособить мою функцию для этого? ну скажем передавать в нее параметром какой то общий объект обозначающий поток ввода будь то консоль или файл... что то типа iostream и его потом юзать при считывании символов... т.е. чтобы не писать 2 функции для консоли и файла
0
|
|
20.09.2014, 20:11
#29
|
0
|
Почетный модератор
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|||||||||||
20.09.2014, 20:36 | 30 | ||||||||||
Сообщение было отмечено GetHelp как решение
Решение
нечто такое, что ли?
Не по теме: какой ужасный код, все же, получился.. Ну, может, кто поправит на "как надо"
1
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||||||
20.09.2014, 20:47 [ТС] | 31 | |||||
вооо спс не знал про такую перегрузку
ограничение лабы да, спасибо все работает ^_^
кстати можно передавать просто cin
0
|
20.09.2014, 20:47 | |
20.09.2014, 20:47 | |
Помогаю со студенческими работами здесь
31
Считать посимвольно строку из консоли Можно ли считать с консоли строку по шаблону? Каким образом нормально считать с консоли строку? Считать строку с консоли (из файла). Найти количество знаков препинания в строке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |