Я пишу некоторый код для наноканала, что означает, что я не могу использовать стандартную библиотеку, хотя я реализовал функции для печати строк и получения символов с клавиатуры.
Прямо сейчас у меня настроена программа, которая берет символы с клавиатуры и помещает их в массив. Строка затем распечатывается. Я ожидаю, что распечатанная строка будет выглядеть точно так же, как введенная пользователем.
Проблема в том, что кажется, что единственный символ, помещаемый в строку, является первым символом, введенным на клавиатуре.
вот соответствующий код для помещения символов в массив:
void stringin(char str[]) { // takes a string, puts it in str
int i = 0;
for (i = 0; str[i] != '\n' && str[i] != '\033';) {
str[i] = getch();
if (str[i] != '\n' && str[i] != '\033') {
i++;
}
calctime(1000000); // waits for a bit so that we don't flood the array
}
if (str[i] == '\n') newline(1);
str[i++] = '\0';
}
Я использовал как функцию печати, так и реализацию strcmp () для проверки содержимого строки, поэтому, кажется, ничего не происходит неправильно при печати строки.