![]() |
1
5
scanf()函数对于用户输入是很糟糕的,除非你知道你的输入数据是正确的(不要那么信任!)另外,应该始终检查fgets()的返回值,因为NULL表示EOF或其他异常。记住,除非首先达到最大值,否则在FGSH()数据的末尾得到用户的换行符。我可以这样做作为第一步:
|
![]() |
2
5
据我所知,唯一的便携式解决方案是自己耗尽缓冲器:
请注意
编辑: 如果只想在下一个换行符之前放弃字符,可以执行以下操作:
|
![]() |
3
1
会发生什么
你怎么能区分
你怎么能区分
这样地
通常不完整的测试是
|
![]() |
4
-1
我会读取数据,然后检查是否存在用户错误:
另一方面,如果你不想这样做,只要读两次num并丢弃第一个。 |
![]() |
Deepansh Jagga · popen()对所有命令都成功 7 年前 |
![]() |
Ian Zurutuza · C: fgets用于构建字符的链接列表* 7 年前 |
![]() |
Dpry12 · Fgets和sscanf未等待输入C 8 年前 |
|
John Vn · Xor加密机新线路问题 8 年前 |
![]() |
Eddy · fgets未读取正确的用户输入 9 年前 |
![]() |
dendritic · fgets(),而循环不会中断 9 年前 |
![]() |
StraightUpBusta · 逐行读取链接列表 10 年前 |