标题:能解释一下这行代码到底是什么意思吗?
只看楼主
kuaisha
Rank: 2
等 级:论坛游民
帖 子:120
专家分:30
注 册:2016-8-3
结帖率:100%
 问题点数:0 回复次数:3 
能解释一下这行代码到底是什么意思吗?
程序代码:
#include <stdio.h>
#include <ctype.h>
char get_first(void);

int main(void)
{

 char ch;

 while((ch = get_first() ) != EOF)

 {
  putchar(ch);

 }

 return 0;
}

char get_first(void)
{

 int ch;

 while( isspace( ch = getchar() ) );//这一行//
 while ( getchar() != '\n');

 return ch;
}

getch读取输入,然后赋值给ch,再然后isspace读取参数,如果参数为空格这返回1,那么while(1),为什么while一直是这一行,直到它为假才执行下一行,while不是没有下一行语句的,他为什么老是循环他自己,可以这样子的吗?
搜索更多相关主题的帖子: 代码 char void while 一行 
2017-09-17 16:03
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:0 
ch = getchar();
while( 0 != isspace( ch ) )
    ch = getchar();


把那一行拆成这样,就清楚了。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-09-17 18:47
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用kuaisha在2017-9-17 16:03:14的发言:
 while( isspace( ch = getchar() ) );//这一行//
 while ( getchar() != '\n');
while不是没有下一行语句的,他为什么老是循环他自己,可以这样子的吗?

个人喜欢这写法
while( isspace( ch = getchar() ) ) NULL;
while ( getchar() != '\n') NULL;
2017-09-18 07:35
kuaisha
Rank: 2
等 级:论坛游民
帖 子:120
专家分:30
注 册:2016-8-3
得分:0 
回复 2楼 renkejun1942
谢谢!
2017-09-23 14:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-480769-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.251002 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved