|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.04.2011, 17:58 | #1 |
Регистрация: 21.03.2011
Сообщений: 4
|
Считывание строки с клавиатуры С++
Здравствуйте!
Вы бы не могли мне немножко помочь?) Написала функцию чтения строки посимвольно в массив: char* getsS(){ char c; char*s; while ((c=getchar())!='\n'){ *(s++)=c; }; return s; }; Но на ней прога вылетает =( Почему? |
01.04.2011, 18:02 | #2 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
Потому что пытается прочитать несуществующий элемент строки?
Попробуйте цикл for от еденицы до длины строки Хотя может я вам наврал я c++ не знаю Ок прочитал тему и понял что туплю Последний раз редактировалось BoozZzilla; 01.04.2011 в 18:08. |
01.04.2011, 18:31 | #3 |
Регистрация: 21.03.2011
Сообщений: 4
|
В цикле написать не могу, так как неизвестна длина строки, которая будет введена с клавиатуры)
Но всё равно спасибо, что откликнулись |
01.04.2011, 18:40 | #4 |
Форумчанин
Регистрация: 03.10.2010
Сообщений: 321
|
Код:
и кстати после '}' точка с запятой не ставится (исключение - класс ) |
01.04.2011, 18:47 | #5 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
Мне самому интересно
А как и где задается длина s? Тьфу, длина возвращаемого массива Не реагируйте бурно, я может даже пойму если мне ответить Последний раз редактировалось BoozZzilla; 01.04.2011 в 18:51. |
01.04.2011, 18:55 | #6 |
Форумчанин
Регистрация: 03.10.2010
Сообщений: 321
|
длина массива нигде не узнается , да она и не нужна.
Тут просто символ введен -> символ установлен в массив через указатель Ну а если границы переполнены , выскочит ошибка переполнения памяти на этапе использования программы |
01.04.2011, 19:04 | #7 |
Регистрация: 21.03.2011
Сообщений: 4
|
Спасибо большое, но мне хотелось бы всё-таки узнать почему та моя функция вылетала...
А длина строки, как я понимаю, нигде не хранится, а только известно что признак конца строки-символ 0. Ведь в Си - не как в делфи-нет такого типа строка, а есть лишь массив указателей на чар. Насколько я знаю) |
01.04.2011, 19:06 | #8 |
Регистрация: 21.03.2011
Сообщений: 4
|
ой, не массив указателей, а указатель на массив)))
|
01.04.2011, 19:07 | #9 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
|
01.04.2011, 20:12 | #10 |
Форумчанин
Регистрация: 03.10.2010
Сообщений: 321
|
class A{
// .... } objectA ; == class objectA; но ведь это дела не меняет ,все равно точка с запятой после '}' не ставится везде кроме классов (структур и объединений) |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Считывание файла со второй строки (delphi) | CAMOBAP | Помощь студентам | 19 | 12.01.2011 23:04 |
Считывание строки из консоли СИ с использованием getchar() | vedro-compota | Общие вопросы C/C++ | 11 | 17.12.2010 12:19 |
Считывание строки неограниченной длины (Си) | 0kopok | Помощь студентам | 6 | 05.10.2009 20:46 |
Считывание строки из файла до символа | Stormzcooler | Общие вопросы Delphi | 7 | 18.12.2006 15:01 |