scanf函数读取问题

「已注销」 2019-08-11 12:02:50
如图所示,我需要读取一个整数类型的值,n为scanf函数的返回值,用于确定scanf函数是否读取成功,这时候我想到字符在内存中以整数形式存储的,所以我给了一个字符 q ,为何读取失败呢?不应该读取q的ascll值113吗?
...全文
194 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
嘟嘟洒水车 2019-08-19
  • 打赏
  • 举报
回复
引用 6 楼 子騫 的回复:
引用 4 楼 自信男孩 的回复:
scanf或scanf_s是格式化输入,如果输入的内容和格式不匹配,则返回成功的个数,楼主的是一个输入,所以成功返回1, 失败返回0.
scanf函数输入跟欲接收不匹配的值会发生错误,不会类型转换成欲接收的类型是吗?就比如图中,char类型的q不会转转换成int类型的113?
%d只读数字
「已注销」 2019-08-12
  • 打赏
  • 举报
回复
引用 1 楼 focuslight 的回复:
输入不再匹配格式字符串所指定的类型时,输入就停止
是scanf只读取指定的格式吗,不是这个格式他就不会读取了,不会进行类型转换把char类型转换成int类型?
  • 打赏
  • 举报
回复
Scanf("%d", &num); n=num; 分开写
「已注销」 2019-08-12
  • 打赏
  • 举报
回复
引用 4 楼 自信男孩 的回复:
scanf或scanf_s是格式化输入,如果输入的内容和格式不匹配,则返回成功的个数,楼主的是一个输入,所以成功返回1, 失败返回0.
scanf函数输入跟欲接收不匹配的值会发生错误,不会类型转换成欲接收的类型是吗?就比如图中,char类型的q不会转转换成int类型的113?
赵4老师 2019-08-12
  • 打赏
  • 举报
回复
printf里面的%和变量的一一对应关系 scanf里面的%和变量以及变量前加不加&的一一对应关系 是C代码中非常容易出错的地方,而且通常编译还不出错。 所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
自信男孩 2019-08-12
  • 打赏
  • 举报
回复
scanf或scanf_s是格式化输入,如果输入的内容和格式不匹配,则返回成功的个数,楼主的是一个输入,所以成功返回1, 失败返回0.
Isnis-fallen 2019-08-11
  • 打赏
  • 举报
回复
输入不再匹配格式字符串所指定的类型时,输入就停止

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧