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日

悬赏问题

  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面