社区
C语言
帖子详情
while(ch=getchar() !=EOF && ch != '\n');有什么意义呢?
goodboy5201314
2009-10-29 05:25:27
while(ch=getchar() !=EOF && ch != '\n')
;
请问这行有什么意义呢??
是在《C和指针》这本书里的第一题!
...全文
2390
15
打赏
收藏
while(ch=getchar() !=EOF && ch != '\n');有什么意义呢?
while(ch=getchar() !=EOF && ch != '\n') ; 请问这行有什么意义呢?? 是在《C和指针》这本书里的第一题!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wupeifu
2011-03-04
打赏
举报
回复
支持!!
[Quote=引用 6 楼 arong1234 的回复:]
这个题目肯定不会如出题的人那么工作。由于=的优先级最低,这个循环等价于
while(ch=(getchar() !=EOF && ch != '\n'))
;
ch将是一个没有初始化的变量,从而导致编译错误。
引用楼主 goodboy5201314 的回复:
while(ch=getchar() !=EOF && ch != '\n')
……
[/Quote]
rainybabylove
2010-06-17
打赏
举报
回复
#include <stdio.h>
#include <memory.h>
void main ( void )
{
char ch;
int num[26], i;
memset (num, 0, 26*sizeof(int)); //初始化数组num
while ((ch = getchar( )) != '\n')
//输入字符串,判断统计
if (ch >= 'A' && ch <= 'Z') //是否为大写字母
num[ch-'A']++;
for (i = 0; i < 26; i++) //输出结果
{
if (i % 9 == 0)
printf ("\n");
printf ("%c(%d) ", 'A'+i, num[i]);
}
printf ("\n");
smallbear_2008
2010-01-05
打赏
举报
回复
楼主为什么不问过滤的必要性呢?以及这个语句为什么能实现过滤功能呢?
goodboy5201314
2009-10-30
打赏
举报
回复
嘻嘻,不好意思哦,原来程序后边有解释的。是将多余的输入过滤而已!感谢各位哦!
BePatient
2009-10-29
打赏
举报
回复
while(ch=getchar() !=EOF && ch != '\n') ;
执行顺序是:
step1. getchar != EOF
step2. ch = (getchar() != EOF), 所以ch只会等于1或0,等于0就推出while
如果ch=1,即getchar() != EOF,则有
step3. ch != '\n'
所以这个while只有输入EOF才可以退出。
walkersfaint
2009-10-29
打赏
举报
回复
就是一个判断循环条件的,
当遇到结束或者回车停止循环
HONG_1009
2009-10-29
打赏
举报
回复
就是读取一行字符 直到结束或者换行符,
phpjspasp
2009-10-29
打赏
举报
回复
[Quote=引用 6 楼 arong1234 的回复:]
这个题目肯定不会如出题的人那么工作。由于=的优先级最低,这个循环等价于
while(ch=(getchar() !=EOF && ch != '\n'))
;
ch将是一个没有初始化的变量,从而导致编译错误。
引用楼主 goodboy5201314 的回复:
while(ch=getchar() !=EOF && ch != '\n')
;
请问这行有什么意义呢??
是在《C和指针》这本书里的第一题!
[/Quote]
这个说的对。
sunkunlun
2009-10-29
打赏
举报
回复
主要的目的为下次读取数据做准备。
如:输入csdn并回车,输入流中保存的内容为csdn\n,而scanf读取输入是只取了csdn,‘\n’还在输入流里,如果直接读取下一个值就会读到'\n',而非自己想要的值
arong1234
2009-10-29
打赏
举报
回复
这个题目肯定不会如出题的人那么工作。由于=的优先级最低,这个循环等价于
while(ch=(getchar() !=EOF && ch != '\n'))
;
ch将是一个没有初始化的变量,从而导致编译错误。
[Quote=引用楼主 goodboy5201314 的回复:]
while(ch=getchar() !=EOF && ch != '\n')
;
请问这行有什么意义呢??
是在《C和指针》这本书里的第一题!
[/Quote]
butwang
2009-10-29
打赏
举报
回复
EOF=-1 ctr+c
'\n' = 10
cphj
2009-10-29
打赏
举报
回复
简单地说就是读一行字符
如果遇到回车或者结束符就终止循环
goodboy5201314
2009-10-29
打赏
举报
回复
如果是的话会怎么样呢?
zhaolinger2
2009-10-29
打赏
举报
回复
回答:
当程序从键盘获得了字符并且字符不是回车符的话,执行循环里的操作。
每获得一个非回车符的字符,执行一次循环操作。
chenyu2202863
2009-10-29
打赏
举报
回复
输入的字符不是结束符且也不是'\n'
C语言清除scanf()缓存的案例讲解
while ((
ch
= fgetc(fp)) !=
EOF
&&
ch
!= '\n'); } ``` 在上面的代码中,safe_flush函数将读取输入缓冲区的内容直到遇到换行符或文件结束符为止。这样可以清除输入缓冲区的内容,避免scanf()函数读取缓存带来的...
while((
ch
=
get
ch
ar
())!=
EOF
&&
ch
!= '\n')
while((
ch
=
get
ch
ar
())!=
EOF
&&
ch
!= '\n') 首先这是一个while循环,入口判断语句稍复杂一些,包括(
ch
=
get
ch
ar
())!=
EOF
和
ch
!= '\n'两个并列条件;第一个条件内嵌字符输入函数
get
ch
ar
()。 然后需要注意的是
EOF
是...
while((
ch
=
get
ch
ar
()) !=
EOF
&&
ch
!=‘\n‘) | 作用 | 清空缓存区 | C和指针
C语言 利用while((
ch
=
get
ch
ar
()) !=
EOF
&&
ch
!='\n')进行清空缓存的通俗讲法。
【C语言】while((
ch
=
get
ch
ar
()!=
EOF
))相关问题详解(结束、安全)
本篇文章主要介绍一下while((
ch
=
get
ch
ar
()!=
EOF
))相关问题 1️⃣分别介绍
get
ch
ar
和
EOF
2️⃣while(
ch
=
get
ch
ar
()!=
EOF
)和while((
ch
=
get
ch
ar
())!=
EOF
)的区别 3️⃣while((
ch
=
get
ch
ar
())!=
EOF
)如何结束...
详解while((
ch
=
get
ch
ar
()) !=
EOF
)
while((
ch
=
get
ch
ar
()) !=
EOF
) put
ch
ar(
ch
); 其运行如下图所示 第一行是我的键盘输入:I love UJS 第二行是我的程序输出:I love UJS 认真学过C语言的同学应该知道,
get
ch
ar
()仅能接收一个字符,put
ch
ar也是如此...
C语言
70,037
社区成员
243,243
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章