Чтение ввода без использования библиотеки conio.h

Сначала я прочитал несколько ссылок и погуглил их. Но я не могу найти способ прочитать ввод, не нажав Enter, не используя getch(), в то время как getchar() cin>> and getline() нужно войти, чтобы прочитать ввод. Я занимаюсь вопросами с онлайн-судьями, и они не принимают библиотеку conio.h. Есть ли способ сделать это? Благодарю.

Кстати, моя цель состоит в том, чтобы каждое нажатие чисел входило в массив.

2 ответа

Решение

istream& getline (istream& is, string& str), использование:

#include<iostream>
int main(){
    std::string output;
    std::getline(std::cin, output);
}

Одна строка, взятая из std::cinхранится в output, Вы можете прочитать каждый outputЧарс используя output[i], где i количество символов, которые вы хотите получить или использовать output.data(), который возвращает те же данные, хранящиеся в char[],

Каждый из этих методов позволяет вам читать char как персонаж. Кажется, вы хотите получить цифру как число, а не как символ.

char тоже номер. Каждое письмо имеет свой собственный код.

char  code
 '0'==48
 '1'==49
 '2'==50
 '3'==51
 '4'==52
 '5'==53
 '6'==54
 '7'==55
 '8'==56
 '9'==57

Как вы можете видеть, цифры красиво устанавливаются одна за другой, а цифры больше о n имеет код больше о также n, Как это использовать? Просто: просто возьми char после charкаждый уменьшается на 48 или же '0' для лучшей читаемости, чтобы получить цифры в виде чисел.

Чтобы читать цифры, просто используйте std::cinЯ не понимаю, почему вы не хотите нажимать Enter для подтверждения пройденного номера.

Когда вы читаете символ за символом, если вы хотите сделать возможным исправление частично введенного числа, вы должны написать дополнительный код - вы должны обрабатывать Backspace, стрелки, Delete и, возможно, поведение Home, End, Shift в сочетании со стрелками... Это много работы.

Другие вопросы по тегам