A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

for ( *pn = 0; isdigit(c); c=getch())
  *pn = 10 * *pn +( c - ‘0' );
*pn  *=  sign;
if ( c  !=  EOF )
ungetch(c);
哪位大神能帮忙解释下这段代码?
1,什么是EOF?
2,  这段代码的含义是什么?

5 个回复

倒序浏览
1,eof(end of file)代表一种结束的信号。Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF(如果在一行的中间按下Ctrl-D,则表示输出"标准输入"的缓存区,所以这时必须按两次Ctrl-D);Windows中,Ctrl-Z表示EOF。
回复 使用道具 举报
2.isdigit函数判定输入的是否是0-9这10个数字(字符)。for循环用于输入一个多位数字,isdigit函数判定输入的是否是数字,不是数字就结束这个函数,得到*pn是一个多位数字。然后这个多位数*pn乘以之前定义的常量sign得到新的*pn。如果之前输入的最后一个字符c不是结束符号,将c退回缓冲区(我也不懂这一句。)。
回复 使用道具 举报
a_skting 发表于 2016-5-6 20:01
1,eof(end of file)代表一种结束的信号。Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF(如果在一 ...

谢谢   。。。 你的解答很详细
回复 使用道具 举报
a_skting 发表于 2016-5-6 20:14
2.isdigit函数判定输入的是否是0-9这10个数字(字符)。for循环用于输入一个多位数字,isdigit函数判定输入 ...

这是基础课程中的内容??
回复 使用道具 举报
Cathy 发表于 2016-5-8 08:45
这是基础课程中的内容??

基础课中好像没有讲eof,但是这段程序你肯定能看懂。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马