string — Как мы можем сканировать 100 байтов из STDIN за один раз в переполнении стека

Сканер ждет, пока мы введем 100 байтов данных. Так что, если мы перенаправим файл в
ввод исполняемого файла, если файл имеет> 100 байтов данных. Я сканирую это за один раз, а не построчно с fgets() или же scanf("%s") и т.п.

0

Решение

Ты можешь использовать 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`.
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]