m0_66012169 2022-01-20 13:36 采纳率: 70%
浏览 31
已结题

C语言中读取一个单词的判断条件

while ((ch = getchar()) != EOF && !isspace(ch))
这个条件为何什么等价于读取一个不含换行符,制表符和空格的单词?

  • 写回答

1条回答 默认 最新

  • 於黾 2022-01-20 13:47
    关注

    (ch = getchar()) != EOF
    这句代码不起作用
    你用getchar()永远只能get到一个字符,而且这些字符都是从键盘能录入的字符,所以也不可能是\0这种东西。
    getchar永远get不到空,否则你不录入的时候它就会不停告诉你读到了空,这明显不应该发生。
    isspace就是用来判断是否是空格、制表符、换行符这些不可见字符的,取反就表示不是这些符号
    那么只要不是这些符号,就陷入一个while循环一直读,直到读到一个不可见符号之后跳出循环

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月28日
  • 已采纳回答 1月20日
  • 创建了问题 1月20日

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程