From 1fe251abc83ee3a38d9faea5be947c90d162c6ae Mon Sep 17 00:00:00 2001 From: justanothercatgirl Date: Mon, 7 Oct 2024 21:16:59 +0300 Subject: fixed buffering input issues --- src/main.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index b536613..ff1a59e 100644 --- a/src/main.c +++ b/src/main.c @@ -1,8 +1,10 @@ #include #include #include +#include #include +#include #include #include #include @@ -104,6 +106,12 @@ exit: return ret; } +char _getchar(void) { + char ret; + while (isspace(ret = getchar())); + return ret; +} + // Prompts user to choose input method enum optype get_optype(void) { prompt_init: @@ -113,7 +121,7 @@ prompt_init: "\t3: численно вычислить интеграл f(x)\n" "Введите число: ", stdout); char c; - switch (getchar()-'0') { + switch (_getchar()-'0') { case 1: return SOL_ITERN; case 2: @@ -123,7 +131,7 @@ prompt_init: "\t2: хорд\n" "\t3: касательных (Ньютона)\n" "Введите число:", stdout); - c = getchar() - '0'; + c = _getchar() - '0'; if (c <= 0 || c > 3) goto prompt_sol; return SOL_BINSR + c - 1; @@ -134,7 +142,7 @@ prompt_init: "\t2: трапеций\n" "\t3: Симпсона (парабол)\n" "Введите число: ", stdout); - c = getchar() - '0'; + c = _getchar() - '0'; if (c <= 0 || c > 3) goto prompt_int; return INT_RECT + c - 1; -- cgit v1.2.3-70-g09d2