0
|
Kiran Shahi Jonny · 技术社区 · 7 年前 |
![]() |
1
3
对于启动器,无参数的主功能应声明如下
只需按以下方式更改程序
然后看看如果你尝试输入角色会发生什么
根据C标准中的功能描述(7.21.6.2 fscanf功能)
和(7.22.1.4 strtol、strtoll、strtoul和strtoull功能)
因此,在演示程序中,将执行else语句,因为(C标准,7.21.6.2 fscanf函数)
|
![]() |
2
2
实际上,所有没有花时间完全理解
在了解具体情况之前,任何时候接受用户输入时,都必须
验证
输入。这意味着检查用于验证输入的任何函数的返回,如果需要,验证接收的输入是否在代码的预期/可接受值范围内。使用
用户输入的首选方法是
具有
安全使用
当您接受用户输入时,无效输入对您没有好处。因此,您通常希望循环,直到收到有效输入或用户取消为止,这可以通过简单的无限循环相对容易地完成,例如:。
在输入循环中单步执行时,您会注意到必须检查的三个条件中的每一个都得到了处理,并且保留在
使用/输出示例
输入已取消的示例。(注意:在Win10上,ctrl+z不会生成
仔细检查一下,如果你还有其他问题,请告诉我。 |
|
3
1
我认为“scanf()”不会将“a”读作数字,而是简单地跳过在“number”中放入任何数字,29是堆栈中找到的数字的初始值! 尝试用123之类的东西初始化“number”,您将在输出中得到123。 |
![]() |
4
1
因为您不初始化
C不会对意外输入使用异常-您必须检查
|
![]() |
Kagemand Andersen · 用C替换文本文件中的行 7 年前 |
![]() |
Adam Grey · If/else语句仅适用于整数。 7 年前 |
![]() |
Tchae · C中的scanf十六进制到uint8\u t[重复] 7 年前 |