| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 948 人关注过本帖
标题:能解释一下这行代码到底是什么意思吗?
只看楼主 加入收藏
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: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10552
专家分:42996
注 册: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
快速回复:能解释一下这行代码到底是什么意思吗?
数据加载中...
 
   



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

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