Где «input.txt» будет содержать любой ввод, который вы хотите дать программе.

я есть следующие функции в рамках задания колледжа:

int readMenuOption()
{
   /* local declarations */
   char option[2];
   /* read in 1 char from stdin plus 1 char for string termination character */
   readStdin(1 + 1, option);
   return (int)option[0] <= ASCII_OFFSET ? 0 : (int)option[0] - ASCII_OFFSET;
}

int readStdin(int limit, char *buffer) 
{
   char c;
   int i = 0;
   int read = FALSE;
   while ((c = fgetc(stdin)) != '\n') {
      /* if the input string buffer has already reached it maximum
       limit, then abandon any other excess characters. */
      if (i <= limit) {
         *(buffer + i) = c;
         i++;
         read = TRUE;
      }
   }
   /* clear the remaining elements of the input buffer with a null character. */
   for (i = i; i < strlen(buffer); i++) {
      *(buffer + i) = '\0';
   }
   return read;
}

Это прекрасно работает для того, что мне нужно сделать (принять ввод с клавиатуры). Я должен был сделать это с помощью стандартного ввода (как и я) из-за ряда требований, изложенных моим профессором.

Я хочу написать серию «модульных тестов» для задания, но я не знаю, как заставить мои функции тестирования вызыватьreadMenuOption() и передать входные данные (без необходимости делать это во время выполнения).

Возможно ли это, и если да, то как я могу это сделать? (т.е. можно ли написать на стандартный ввод)?

Ответы на вопрос(3)

Ваш ответ на вопрос