![]() |
1
5
scanf()函数对于用户输入是很糟糕的,除非你知道你的输入数据是正确的(不要那么信任!)另外,应该始终检查fgets()的返回值,因为NULL表示EOF或其他异常。记住,除非首先达到最大值,否则在FGSH()数据的末尾得到用户的换行符。我可以这样做作为第一步:
|
![]() |
2
5
据我所知,唯一的便携式解决方案是自己耗尽缓冲器:
请注意
编辑: 如果只想在下一个换行符之前放弃字符,可以执行以下操作:
|
![]() |
3
1
会发生什么
你怎么能区分
你怎么能区分
这样地
通常不完整的测试是
|
![]() |
4
-1
我会读取数据,然后检查是否存在用户错误:
另一方面,如果你不想这样做,只要读两次num并丢弃第一个。 |
![]() |
Dai · bcrypt生成不正确的哈希-我的用户输入处理是否正确? 7 年前 |
![]() |
Wolfat · 无法从C中的管道执行读取? 7 年前 |
![]() |
Adonai · 在C中创建get string函数时出现问题 7 年前 |
|
Spring fancy · 为什么linux中不混合标准输入? 7 年前 |
|
Cryptosyche · C-使用fgets直到换行/-1[关闭] 7 年前 |
![]() |
Alexander Mills · 向下传递手柄管道 7 年前 |