<s>C_nx 语言_n Switch_nx 语句_n</s>
<s>建议_v 楼主_n 在_p 使用_v 系统_n 接口_n 时_Ng ，_w 先_d 熟知_v 其_r 定义_n 及_c 返回_vn 值_n ；_w 如_v scanf_nx 的_u 函数_n 原型_n 为_v ：_w int_nx scanf_nx (_w const_nx char_nx *_w restrict_nx format_nx ,_w ._w ._w ._w )_w ;_w 它_r 的_u 返回_vn 值_n 定义_n 如下_v ：_w scanf_nx 函数_n 返回_v 成功_ad 读入_v 的_u 数据_n 项数_n ，_w 读入_v 数据_n 时_Ng 遇到_v 了_u “_w 文件_n 结束_v ”_w 则_d 返回_v EOF_nx ；_w 当_p 返回_v 0_m 时_Ng ，_w 表示_v 实际_ad 没有_d 成功_ad 读_v 入_v 对应_vn 数据_n 。_w</s><s>回到_v 楼主_n 的_u 测试_vn 代码_n ，_w 我_r 稍微_d 修改_v 了_y ，_w 一下子_m 就_d 能_v 发现_v 问题_n 了_y ：_w 注意_v 有_v 2_m 个_q 问题_n ，_w 一_m 是_v a_nx 未_d 初始_v 化_v ，_w 而_c 是_v 未_d 判断_v scanf_nx 的_u 返回_vn 值_n ；_w #_nx include_nx <_w stdio_nx ._w h_nx >_w void_n main_nx (_w void_nx )_w {_w int_nx a_nx ;_w /_w /_w 这里_r 定义_v a_nx 是_v 未_d 初始_v 化_v 的_u ，_w 理论_n 上_f 它_r 的_u 值_n 是_v 随机_b 的_u int_nx ret_nx ;_w printf_nx (_w "_w 1_m =_w =_w =_w =_w =_w a_nx =_w %_w d_nx \_w n_nx "_w ,_w a_nx )_w ;_w printf_nx (_w "_w 请_v 输入_v :_w "_w )_w ;_w ret_nx =_w scanf_nx (_w "_w %_w d_nx "_w ,_w &_w a_nx )_w ;_w /_w /_w 注意_v 判断_v scanf_nx 的_u 返回_vn 值_n printf_nx (_w "_w 2_m =_w =_w =_w =_w =_w a_nx =_w %_w d_nx ，_w scanf_nx ret_nx =_w %_w d_nx \_w n_nx "_w ,_w a_nx ,_w ret_nx )_w ;_w switch_nx (_w a_nx )_w {_w case_nx 1_m :_w printf_nx (_w "_w 输入_v 了_u 1_m 。_w</s><s>\r\n_nx "_w )_w ;_w break_nx ;_w case_n 0_m :_w printf_nx (_w "_w 输入_v 了_u 0_m 。_w</s><s>\_w r_n \_w n_nx "_w )_w ;_w break_nx ;_w default_nx :_w printf_nx (_w "_w 输入_vn 错误_n !_w \_w r_n \_w n_nx "_w )_w ;_w break_nx ;_w }_w }_w 修正_v 后_f 的_u 测试_vn 代码_n 如下_v ：_w void_n main_nx (_w void_nx )_w {_w int_nx a_nx =_w -_w 1_m ;_w /_w /_w 这里_r 定义_v a_nx 时_Ng 初始_t 化为_v -_w 1_m int_nx ret_nx ;_w printf_nx (_w "_w 1_m =_w =_w =_w =_w =_w a_nx =_w %_w d_nx \_w n_nx "_w ,_w a_nx )_w ;_w printf_nx (_w "_w 请_v 输入_v :_w "_w )_w ;_w ret_nx =_w scanf_nx (_w "_w %_w d_nx "_w ,_w &_w a_nx )_w ;_w /_w /_w 注意_v 判断_v scanf_nx 的_u 返回_vn 值_n printf_nx (_w "_w 2_m =_w =_w =_w =_w =_w a_nx =_w %_w d_nx ，_w scanf_nx ret_nx =_w %_w d_nx \_w n_nx "_w ,_w a_nx ,_w ret_nx )_w ;_w if_nx (_w ret_nx !_w =_w 1_m )_w {_w /_w /_w 判断_v scanf_nx 的_u 返回_vn 值_n ，_w 当_p ret_nx 不_d 为_v 1_m 时_Ng (_w 读_v 入_v 1_m 个_q 整数_n )_w ，_w 表示_v 输入_vn 错误_n printf_nx (_w "_w 输入_vn 错误_n !_w \_w r_n \_w n_nx "_w )_w ;_w return_nx ;_w }_w switch_nx (_w a_nx )_w {_w case_nx 1_m :_w printf_nx (_w "_w 输入_v 了_u 1_m 。_w</s><s>\r\n_nx "_w )_w ;_w break_nx ;_w case_n 0_m :_w printf_nx (_w "_w 输入_v 了_u 0_m 。_w</s><s>\r\n_nx "_w )_w ;_w break_nx ;_w default_nx :_w printf_nx (_w "_w 输入_v 错误_n !_w \r\n_nx "_w )_w ;_w break_nx ;_w }_w }_w 测试_vn 记录_n 如下_v ：_w root_nx @_w liluchang_nx -_w ubuntu_nx :_w /_w share_nx /llc/test_scanf# ./test_scanf_nx 1_m ====_w =_w a_nx =-1_m 请_v 输入_v :_w 777777777_m 2_m =_w =_w =_w =_w =_w a_nx =_w 777777777_m ，_w scanf_nx ret_nx =1_m 输入_vn 错误_n !_w</s><s>root@liluchang-ubuntu_nx :_w /share/llc/test_scanf# ./test_scanf_nx 1_m =====a=-1_w 请_v 输入_v :_w 1_m 2_m =====_w a_nx =_w 1_m ，_w scanf_nx ret_nx =1_m 输入_v 了_u 1_m 。_w</s><s>root@liluchang-ubuntu_nx :_w /share/llc/test_scanf# ./test_scanf_nx 1_m =====a=-1_w 请_v 输入_v :_w 0_m 2_m =====_w a_nx =0_m ，_w scanf_nx ret_nx =1_m 输入_v 了_u 0_m 。_w</s><s>root@liluchang-ubuntu_nx :_w /share/llc/test_scanf# ./test_scanf_nx 1_m =====a=-1_w 请_v 输入_v :_w gggggg_nx 2_m =====a=-1_w ，_w scanf_nx ret_nx =0_m 输入_v 错误_n !_w</s><s>测试_vn 案例_n 输入_v 很_d 大_a 的_u 整数_n 、_w 字符串_n 、_w 数字_n 1_m 和_c 输_v 0_m ，_w 均能_v 得到_v 预期_vn 效果_n 。_w</s>
