![]() |
1
5
scanf()函数对于用户输入是很糟糕的,除非你知道你的输入数据是正确的(不要那么信任!)另外,应该始终检查fgets()的返回值,因为NULL表示EOF或其他异常。记住,除非首先达到最大值,否则在FGSH()数据的末尾得到用户的换行符。我可以这样做作为第一步:
|
![]() |
2
5
据我所知,唯一的便携式解决方案是自己耗尽缓冲器:
请注意
编辑: 如果只想在下一个换行符之前放弃字符,可以执行以下操作:
|
![]() |
3
1
会发生什么
你怎么能区分
你怎么能区分
这样地
通常不完整的测试是
|
![]() |
4
-1
我会读取数据,然后检查是否存在用户错误:
另一方面,如果你不想这样做,只要读两次num并丢弃第一个。 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 4 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 5 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 5 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 5 月前 |