diff options
-rw-r--r-- | include/input.h | 9 | ||||
-rw-r--r-- | lib/input.c | 38 |
2 files changed, 47 insertions, 0 deletions
diff --git a/include/input.h b/include/input.h new file mode 100644 index 0000000..7e1bb3e --- /dev/null +++ b/include/input.h @@ -0,0 +1,9 @@ +#ifndef _INPUT +#define _INPUT + +#include "types.h" + +Coord input_orig_coord(); +Coord input_dest_coord(); + +#endif diff --git a/lib/input.c b/lib/input.c new file mode 100644 index 0000000..63df8c5 --- /dev/null +++ b/lib/input.c @@ -0,0 +1,38 @@ +#include <stdio.h> +#include <string.h> + +#include "coordinate.h" +#include "input.h" + +#define LENGTH 80 + +static Coord _input_coord() { + char line[LENGTH]; + int done = 0; + + while (!done) { + fgets(line, LENGTH, stdin); + + if (strnlen(line, LENGTH) == 3 && line[2] == '\n') + line[2] = 0; + + if (!coord_is_valid(line)) + printf("Invalid coordinate. Write something like \"e2\": "); + else + done = 1; + } + + return coord_init(line); +} + +Coord input_orig_coord() { + printf("Orig coordinate: "); + + return _input_coord(); +} + +Coord input_dest_coord() { + printf("Dest coordinate: "); + + return _input_coord(); +} |