黑马程序员技术交流社区

标题: ios基础班,表示这段代码不是太懂,求大神指点!!! [打印本页]

作者: Dream丶boy    时间: 2016-5-6 12:46
标题: ios基础班,表示这段代码不是太懂,求大神指点!!!
for ( *pn = 0; isdigit(c); c=getch())
  *pn = 10 * *pn +( c - ‘0' );
*pn  *=  sign;
if ( c  !=  EOF )
ungetch(c);
哪位大神能帮忙解释下这段代码?
1,什么是EOF?
2,  这段代码的含义是什么?
作者: a_skting    时间: 2016-5-6 20:01
1,eof(end of file)代表一种结束的信号。Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF(如果在一行的中间按下Ctrl-D,则表示输出"标准输入"的缓存区,所以这时必须按两次Ctrl-D);Windows中,Ctrl-Z表示EOF。
作者: a_skting    时间: 2016-5-6 20:14
2.isdigit函数判定输入的是否是0-9这10个数字(字符)。for循环用于输入一个多位数字,isdigit函数判定输入的是否是数字,不是数字就结束这个函数,得到*pn是一个多位数字。然后这个多位数*pn乘以之前定义的常量sign得到新的*pn。如果之前输入的最后一个字符c不是结束符号,将c退回缓冲区(我也不懂这一句。)。
作者: Dream丶boy    时间: 2016-5-6 21:45
a_skting 发表于 2016-5-6 20:01
1,eof(end of file)代表一种结束的信号。Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF(如果在一 ...

谢谢   。。。 你的解答很详细
作者: Cathy    时间: 2016-5-8 08:45
a_skting 发表于 2016-5-6 20:14
2.isdigit函数判定输入的是否是0-9这10个数字(字符)。for循环用于输入一个多位数字,isdigit函数判定输入 ...

这是基础课程中的内容??
作者: a_skting    时间: 2016-5-8 10:29
Cathy 发表于 2016-5-8 08:45
这是基础课程中的内容??

基础课中好像没有讲eof,但是这段程序你肯定能看懂。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2