Где «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()
и передать входные данные (без необходимости делать это во время выполнения).
Возможно ли это, и если да, то как я могу это сделать? (т.е. можно ли написать на стандартный ввод)?