For output streams, fflush() forces a write of all user-space buffered data for the given output or update stream via the stream's underlying write function. For input streams, fflush() discards any buffered data that has been fetched from the underlying file, but has not been by the application. The open status of the stream is unaffected.
Каким образом? Я не знаю заранее какой размер введет пользователь. Я хотел считать через getchar(), но там та же ситуация. Может есть способ проверить буфер на пустоту?