普通网友 2022-01-20 13:36 采纳率: 70%
浏览 32
已结题

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日