C语言while循环一个简单问题

while(!feof(fp))其中!是什么意思,就是!feof这是什么意思?... while(!feof(fp))
其中!是什么意思,就是!feof这是什么意思?
展开
 我来答
钮玉芬孛辰
2019-05-26 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:29%
帮助的人:951万
展开全部
”当在k=0后面加一个getchar()”不对吧,你的意思是不是把scanf函数改为getchar函数.
首先说到getchar函数,它只接受一个字符,其实不管你输入任何的数字,字符,或他们的组合,它只会将第1个字符接收.例如你输入123,则gerchar函数只接收1,且这是字符1,因为它只会把接收的东西当字符看待,又字符常量是可以赋给整型变量的,是把字符的ascll码赋给变量.
而scanf是格式控制输入函数,当你输入的不满足他的先定要求时就出错了.
再说到你的代码,当你输入字符后,scanf("%d",&n)!=0不成立,所以就继续循环,后面就一直停留在scanf接收的阶段,所以不会有反映.
下面给出代码:
#include
<stdio.h>
int
main()
{
int
n,k=1;
while(k)
{
if(scanf("%d",&n)!=0)
k=0;
else
printf("please
input
right
content:");
}
printf("%d",n);
}
唯一区别就是有一行提示你输入正确内容的语句,以判别是否输入正确和正在等待输入,其实你只要再次输入整数就可以了.
just4u1314
2009-05-25 · TA获得超过563个赞
知道小有建树答主
回答量:89
采纳率:0%
帮助的人:90.8万
展开全部
!相当于pascal中的not,逻辑否,
feof(*in)函数表示in所指向的文件是否已经读到文件尾部,其中读到文件尾部返回1,未读到文件尾部返回0.
还不懂的话可以继续找我.

参考资料: 我专供C语言

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhyl0912
2009-05-25 · 超过16用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:0
展开全部
"!"是“非”的意思,feof是个函数名,while(!feof(fp)) 的意思是当feof(fp)===0时循环终止。
函数值为“假”时,既为“0”时终止循环。
参考资料
函数名: feof
功 能: 检测流上的文件结束符
用 法: int feof(FILE *stream);
程序例:
#include <stdio.h>
int main(void)
{
FILE *stream;
/* open a file for reading */
stream = fopen("DUMMY.FIL", "r");
/* read a character from the file */
fgetc(stream);
/* check for EOF */
if (feof(stream))
printf("We have reached end-of-file\n");
/* close the file */
fclose(stream);
return 0;
}
feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为1,否则为0。
EOF是文件结束标志的文件。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,ASCⅡ代码的范围是0到255,不可能出现-1,因此可以用EOF作为文件结束标志。
当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志。为解决这一个问题,ASCI C提供一个feof函数,用来判断文件是否结束。feof函数既可用以判断二进制文件又可用以判断文本文件。
“C”语言的“feof()”函数和数据库中“eof()”函数的运做是完全不同的。数据库中“eof()”函数读取当前指针的位置,“C”语言的“feof()”函数返回的是最后一次“读操作的内容”。多年来把“位置和内容”相混,从而造成了对这一概念的似是而非。
那么,位置和内容到底有何不同呢?举个简单的例子,比如有人说“你走到火车的最后一节车箱”这就是位置。而如果说“请你一直向后走,摸到铁轨结果”这就是内容。也就是说用内容来判断会“多走一节”。这就是完全依赖于“while(!feof(FP)){...}”进行文件复制时,目标文档总会比源文档“多出一些”的原因。
在“C”文件读取操作时不能完全依赖于“while(!feof(FP)){...}”的判断。
希望能给你帮助!

参考资料: http://baike.baidu.com/view/656648.htm

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式