powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / как ввести строку с клавиатуры
4 сообщений из 4, страница 1 из 1
как ввести строку с клавиатуры
    #34460282
Привет всем! Подскажите пожалуйста как осуществить проще ввод с клавиатуры (из консоли) строки. Ввод должен прерываться символом точки '.'

Использую Borland C 3.1 под DOS.
Делаю так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
/**
 * Метод чтения строки с клавиатуры
 */
void input(char *str) {
     char END = '.';        // символ завершения строки
     char c;

     int i= 0 ;
     do {
        c = getch();
        *(str+i) = c;
        printf("%c", *(str+i));
        i++;
     } while(c!=END);
}

void main() {
     printf("\n\n--------------------------------------------\n");

     char *s;
     input(s);
     printf("%s", s);
}

Метод input читает нормально строку - но по приёму этой строки в методе main выводит на экран помимо всего прочего какую то хрень. Правильно ли я вообще реализую эту задачу? Помогите кто сможет...
...
Рейтинг: 0 / 0
как ввести строку с клавиатуры
    #34460315
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮныйСамоварПравильно ли я вообще реализую эту задачу?В принципе правильно. Ее можно и проще решить, но и такой подход вполне имеет право на жизнь.
Ты сделал две ошибки:
1 - забыл выделить память под приемный буфер. То что программа вообще работает как есть - большая удача. Выдели память для s перед вызовом input() и передай в input длину выделенного буфера, а в input() проверяй чтоб буфер не переполнился.
2 - строка должна завершаться нулем. По получению конечного символа, поставь в буфере нолик вместо очередной буквы.
...
Рейтинг: 0 / 0
как ввести строку с клавиатуры
    #34460322
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮныйСамоварИспользую Borland C 3.1 под DOS.
Метод input читает нормально строку - но по приёму этой строки в методе main выводит на экран помимо всего прочего какую то хрень. Правильно ли я вообще реализую эту задачу? Помогите кто сможет...
Ну вообще-то не хило было бы место отвести по строчку, а то пишешь в белый сет как в копейкуБ фактически в произвольную облачть памятию А строчку надо завершить 0, иначе программа распечатает тебе от сюда и до обеда, тюею до первого встретившегося 0
...
Рейтинг: 0 / 0
как ввести строку с клавиатуры
    #34460366
Большое спасибо за ответы! Всё заработало нормально после исправления указанных ошибок.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / как ввести строку с клавиатуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]