Я использую этот код:
while ( scanf("%s", buf) == 1 ){
Каким будет лучший способ предотвратить возможное переполнение буфера, чтобы он мог передавать строки случайных длин?
Я знаю, что могу ограничить входную строку, вызвав, например:
while ( scanf("%20s", buf) == 1 ){
Но я бы предпочел, чтобы иметь возможность обрабатывать все, что вводит пользователь. Или это нельзя сделать безопасно с помощью scanf, и я должен использовать fgets?