Я знаю, что все говорили мне использовать fgets и не получают из-за переполнения буфера. Тем не менее, я немного смущен третьим параметром в fgets()
. Как я понимаю, fgets зависит от:Функция fgets() в C
char * fgets (char * str, int num, FILE * stream);
char* str
является PTR, где мой вклад будет сохранен.
num
- максимальное количество символов для чтения.
но что такое FILE *stream
? Если я просто предлагаю пользователю ввести строку (например, предложение), я должен просто набрать «stdin
»?
И должен ли я печатать FILE *stdin
наверху, рядом с main()
?
Я думаю, что второй параметр должен быть STRLEN (буфер) -1. Если буфер не равен 11 байтам. – ant2009
@robUK, это будет работать только в том случае, если для начала буфера не были все нули. Как упоминалось в ОП, переполнение буфера на самом деле не вызывает беспокойства. –