黑马程序员技术交流社区

标题: scanf的第一个参数中不要包含\n [打印本页]

作者: yangyan    时间: 2014-9-20 21:04
标题: scanf的第一个参数中不要包含\n
scanf的第一个参数中不要包含\n,比如scanf(“%d\n”, &a); 这将导致scanf函数无法结束
刚刚犯这个错误了
作者: zhuiyi007    时间: 2014-9-22 11:10
scanf好像不能用\n吧,这是输出控制符,scanf是输入的
作者: fantacyleo    时间: 2014-9-22 11:16
结束倒是可以结束,用ctrl+d或ctrl+z。不过确实不推荐。类似的还有不要在scanf中包含提示输入信息,应该将其放到printf中
作者: yangyan    时间: 2014-9-22 11:23
fantacyleo 发表于 2014-9-22 11:16
结束倒是可以结束,用ctrl+d或ctrl+z。不过确实不推荐。类似的还有不要在scanf中包含提示输入信息,应该将 ...

恩恩,学习了
作者: AngleMGG    时间: 2014-9-22 12:10
fantacyleo 发表于 2014-9-22 11:16
结束倒是可以结束,用ctrl+d或ctrl+z。不过确实不推荐。类似的还有不要在scanf中包含提示输入信息,应该将 ...

如果在scanf中包含提示输入信息,那么后果是输入的值没办法传给变量:L 本人犯过这个低级错误
作者: fantacyleo    时间: 2014-9-22 16:09
AngleMGG 发表于 2014-9-22 12:10
如果在scanf中包含提示输入信息,那么后果是输入的值没办法传给变量 本人犯过这个低级错误 ...

对,如果在scanf中使用了提示信息,输入时必须把提示信息完整地重复一遍,否则匹配会失败。好在scanf也就在c中用一用。ios app开发中永远不会让用户从控制台输入数据
作者: housq    时间: 2014-9-22 19:56
fantacyleo 发表于 2014-9-22 16:09
对,如果在scanf中使用了提示信息,输入时必须把提示信息完整地重复一遍,否则匹配会失败。好在scanf也就 ...

那应该是格式化输入的吧,一般不建议用转义字符
作者: longshaocn    时间: 2014-9-22 20:07
scanf中\n在内部有特殊用途,所以接收的时候不能有\n。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2