From 3ab13be7591161e5dd8ea0fd2830820a5c8d4fee Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Tue, 25 Feb 2020 10:56:23 -0500 Subject: Initial commit of user_input.[c,h] --- src/user_input.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/user_input.c (limited to 'src/user_input.c') diff --git a/src/user_input.c b/src/user_input.c new file mode 100644 index 0000000..061fb2e --- /dev/null +++ b/src/user_input.c @@ -0,0 +1,46 @@ +#include "spm.h" + +/** + * Basic case-insensitive interactive choice function + * @param answer + * @param answer_default + * @return + */ +int spm_user_yesno(int answer, int empty_input_is_yes) { + int result = 0; + answer = tolower(answer); + + if (answer == 'y') { + result = 1; + } else if (answer == 'n') { + result = 0; + } else { + if (empty_input_is_yes) { + result = 1; + } else { + result = -1; + } + } + + return result; +} + +void spm_user_yesno_test() { + int choice; + int status; + while ((choice = getchar())) { + status = spm_user_yesno(choice, 1); + if (status == -1) { + puts("Please answer Y or N"); + continue; + } + else if (status == 0) { + puts("You answered no"); + break; + } + else if (status == 1) { + puts("You answered yes"); + break; + } + } +} -- cgit