63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
1 | |
Считать строку с консоли18.09.2014, 10:13. Показов 12758. Ответов 30
Метки нет (Все метки)
такая задачка, препод хочет чтобы мы не юзали класс string, а юзали массивы символов, причем только динамические (лаба такая просто), запретил выделять буфер (например char* str = new char[100]), так как же мне считать строку с консоли??? читать посимвольно с помощью cin.get и каждый раз перевыделять память на 1 символ? или может есть какая то специальная функция для такого случая?
Добавлено через 1 минуту потому что getline вроде бы требует задать количество считываемых символов, а я не знаю сколько их будет... Добавлено через 48 секунд хотя вот со string я бы сделал так: getline(cin, str) и оно канает, может можно и с массивом как то так заюзать?
0
|
18.09.2014, 10:13 | |
Ответы с готовыми решениями:
30
Считать строку из консоли Считать строку из консоли Считать строку из консоли Как считать строку с консоли? |
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
18.09.2014, 10:17 [ТС] | 3 |
0
|
Модератор
13508 / 10758 / 6412
Регистрация: 18.12.2011
Сообщений: 28,723
|
||||||
18.09.2014, 10:23 | 5 | |||||
Если в файле одна строка, то можно так
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
18.09.2014, 10:24 [ТС] | 6 |
new это не std как бы...
читаем не из файла, а просто из консоли...
0
|
2279 / 1770 / 741
Регистрация: 27.07.2012
Сообщений: 5,254
|
|
18.09.2014, 10:27 | 7 |
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
18.09.2014, 10:28 [ТС] | 8 |
ну хорошо можно юзать функции считывания типа cin, но нельзя использовать никакие контейнеры (string, vector и т.п.)
0
|
Модератор
13508 / 10758 / 6412
Регистрация: 18.12.2011
Сообщений: 28,723
|
|
18.09.2014, 10:32 | 9 |
В любом случае, читаемые данные надо куда-то девать.
Можете читать посимвольно до конца строки ('\n') и писать в файл открытый для записи и чтения, а потом использовать предложенную мной методу.
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
18.09.2014, 10:33 [ТС] | 10 |
да никуда их не надо девать, они просто считываются... а посимвольное считывание я предложил с самого начала, просто думал может можно как то проще...
0
|
Guardian of Asgaard
377 / 319 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
|
||||||
18.09.2014, 10:39 | 12 | |||||
GetHelp, как вариант, таки можно создать массив чаров, но каждый раз выделять память на 1 символ, это не тру, лучше использовать некий коэффициент при расчёте выделения памяти, чтоб сразу на несколько символов, в зависимости от размера, это и будет динамическое выделение памяти. Примерно так:
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
18.09.2014, 10:39 [ТС] | 13 |
0
|
Модератор
13508 / 10758 / 6412
Регистрация: 18.12.2011
Сообщений: 28,723
|
|
18.09.2014, 10:40 | 14 |
Просто считываются куда?
Если в воздух (т.е. читаем в одиночный символ стирая предыдущее значение), то для консольного ввода отмотать поток назад нельзя и данные потеряются.
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
18.09.2014, 10:47 [ТС] | 15 |
да в память они считываются куда же еще... в выделенную память, по окончании программы память удаляется, что тут не понятного?
Добавлено через 1 минуту кажется понял о чем вы буфер да, запретил, но не в принципе использование new Добавлено через 1 минуту Darkrduk, что то не понял что делает ваша функция... и юзать в функции 2 раза return это преступление, за него надо руки отрубать -_-
0
|
Guardian of Asgaard
377 / 319 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
|
|
18.09.2014, 10:48 | 16 |
GetHelp, тогда выделяйте память каждый раз на 1 символ
0
|
Почетный модератор
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|||||||||||
18.09.2014, 17:24 | 18 | ||||||||||
с чего бы это такие выводы? Хотите сказать, что, к примеру, за такой код надо отрубать руки?
0
|
189 / 177 / 111
Регистрация: 22.06.2009
Сообщений: 533
|
||||||
18.09.2014, 17:41 | 19 | |||||
0
|
Модератор
13508 / 10758 / 6412
Регистрация: 18.12.2011
Сообщений: 28,723
|
||||||
18.09.2014, 18:10 | 20 | |||||
worldown, А что должна делать Ваша программа?
Создать переменную динамически, ввести в нее значение и вывести его на экран? Причем тут тогда тема "Считать строку"? А если все-таки имели ввиду иассив, то программа эквивалентна такой:
0
|
18.09.2014, 18:10 | |
18.09.2014, 18:10 | |
Помогаю со студенческими работами здесь
20
Считать посимвольно строку из консоли Можно ли считать с консоли строку по шаблону? Каким образом нормально считать с консоли строку? Считать строку с консоли (из файла). Найти количество знаков препинания в строке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |