【发布时间】:2012-11-23 16:16:29
【问题描述】:
我有以下用 C 编写的程序:
这个程序的主要问题是,如果在使用 fgets() 函数时输入超过 80 个字符,程序就会立即退出。其他代码被执行,但是它不等待用户按下回车。它就像只是忽略了最后的 getchar。
请问我该如何解决这个问题?
【问题讨论】:
-
您可能还想重新考虑自动删除换行符(除了您提出的问题,下面将轻松回答)。如果输入超过 80 个字符,则缓冲区中没有换行符,并且您正在正式覆盖用户数据。不是严重错误,只是逻辑错误,在这种情况下会丢失密码内容。