Сканер ждет, пока мы введем 100 байтов данных. Так что, если мы перенаправим файл в
ввод исполняемого файла, если файл имеет> 100 байтов данных. Я сканирую это за один раз, а не построчно с fgets()
или же scanf("%s")
и т.п.
Ты можешь использовать fread
чтобы прочитать количество байтов, которое вы хотите, независимо от разрыва строки или других белых символов:
char buf[100];
size_t bytes_read = fread(buf, 1, 100, stdin);
Обратите внимание, что buf
не будет нулевым символом Так что если вы хотите printf
например, (для него требуется строка с нулевым символом в конце), вы можете попробовать следующее:
char buf[101];
size_t bytes_read = fread(buf, 1, 100, stdin);
buf[100] = '\0'; // The 101th "cell" of buf will be
// the one at index `100` since the
// first one is at index `0`.
Других решений пока нет …