Дорога к успеху будет заключаться в том, чтобы выполнять то, о чем вас попросит задание :) В частности, вы должны использовать одну или несколько функций из conio.h
для чтения ввода. scanf()
- это , а не функция conio.h.
Потому что Я ленивый Это домашнее задание, я не буду писать код для вас.
Одной из возможностей будет использование cscanf()
вместо scanf()
. Но это может (я не знаю) эхо-символы ввода, которые включают случайный Ввод , и не решат вашу проблему.
Если это так, моя стратегия заключается в том, чтобы написать цикл для сбора символов, введенных с клавиатуры, используя функцию getch()
без эха. Вы можете игнорировать символы новой строки, пока у вас не будет хотя бы одного печатаемого символа, а затем принимать символы (и сохранять их в массиве символов или как угодно), пока не получите новую строку. Поскольку вводимые символы не будут отображаться, я думаю, что курсор не будет двигаться.
Затем вы можете сканировать входные символы из входного буфера, используя sscanf()
. Вы захотите посчитать вводимые символы, чтобы убедиться, что ваш пользователь не переполняет ваш буфер. Также, возможно, некоторая обработка ошибок в случае неверных данных.
РЕДАКТИРОВАТЬ: Кое-что я забыл упомянуть: за вашим последним входным символом в буфере должен следовать нулевой символ ('\0'
), поэтому sscanf()
завершится правильно. Возможно, что ваш буфер по умолчанию заполнен нулями, но его намеренно вставьте в него (например, когда вы нажмете последнюю строчку), что сделает ваш код более правильным и надежным.