C语言中的缓冲区的问题

gets函数最多可以接收4K数据,也就是说最多可以接收4094个字符。我现在需要一行输入100000个字符,gets函数没法接收这么多字符,要怎么改才可以?我是新手,在网上看到setvbuf函数什么的看不懂,不知道怎么设置,希望有大神可以帮帮我

做个循环,可以一次只接收4096,然后用100000减去4096,一直接收完后,跳出循环

什么样的控制台可以一次输入100000个字符?根本是庸人自扰,如果要输入那么多数据,可以让用户在文件里编辑好了,再在程序里读取。
C语言可以在main上使用argc args参数,参数可以由用户指定文件名。