帅帅翔 2023-01-12 16:23 采纳率: 100%
浏览 50
已结题

[C语言] 关于scanf(“%[^\n]%*c“,str) 保留空格读入字符串

(scanf("%s",buff)不能连续读入含空格的字符串)
如果直接输入回车会出现乱码,并且缓存区清理不掉,请问这是什么原因
这是我的代码:

img

这是输出结果(一直在死循环输出乱码):

img

但是分开scanf这个内部则不会出现死循环的问题

img

这是分开后的输出结果:

img

  • 写回答

3条回答 默认 最新

  • 帅帅翔 2023-01-13 09:07
    关注

    这是scanf+正则表达式的使用,目的是连续读入含空格的字符串如“Hello[空格]World”,scanf("%s",buff)只能读入Hello(遇空格结束),如果不清楚scanf(“%[^\n]%*c“,str)用法的可以自己搜一下,当然如果有更好的纳非空白字符(空格、回车、制表符等)的输入方法也可以说,无意义的回答/讨论就不要再发了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月4日
  • 已采纳回答 9月26日
  • 修改了问题 1月13日
  • 修改了问题 1月13日
  • 展开全部