不等于eof什么意思(c++中eof是什么意思)

http://www.itjxue.com  2023-01-26 19:00  来源:未知  点击次数: 

c语言中!=EOF是什么意思啊

EOF是C/C++定义的符号常量,其值是-1。!=EOF的意思就是不等于-1。

C语言中的while(scanf("%d",&n)!=EOF&&n)的意思是什么?用C++如何表达?

您好,

在C语言中 while();为循环语句,其结果只有2种,while(0);0为假,跳出循环

while(1);1为真,继续执行循环体中的代码。

那么在while();括号中即为判断语句,在您的while(scanf("%d",n)!=EOFn);

中有两个逻辑运算符分别为:! (逻辑非)和 (逻辑与)运算。为同一级运算符,故从左往右执行!

! (逻辑非)

在C语言中 一般会有!0 ,!1两种比较常见。

而!0即 "true",条件语句为真,执行判断语句下面的语句,

!1即"false",条件语句为假,跳出判断语句不执行。

另有:

!n(n不等于0的任意正整数)结果都为"false",用数字表示即为"0",计算机能识别的语言只有"0"和"1","0"为假、"1"为真。

EOF表示:

End Of File,在电脑的术语缩写通常为 EOF,在作业系统决定资料源无更多的资料可读取。

scanf("%d",n)!=EOF 即表示:返回值不等于EOF(即有效输入)

(逻辑与)

在C语言中 ab 若a,b有一个为0(包括同时为0),则ab=0;也就是说a,b都不为0 ,判断为真,执行循环语句。

说了这么多,那么while(scanf("%d",n)!=EOFn);说白了就是指:只要n不为0,则执行循环体中的代码。否则跳出!

在C++中 您可以使用:

while(cinnn)

解释的够累了,连运算符的优先级都讲到了。。。

哎,真心累啊!

EOF是什么?

我学习C语言的时候,遇到的一个问题就是EOF。它是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。比如,下面这段代码就表示,如果不是文件结尾,就把文件的内容复制到屏幕上。 int c;while ((c = fgetc(fp)) != EOF) { putchar (c); }很自然地,我就以为,每个文件的结尾处,有一个叫做EOF的特殊字符,读取到这个字符,操作系统就认为文件结束了。但是,后来我发现,EOF不是特殊字符,而是一个定义在头文件stdio.h的常量,一般等于-1。 #define EOF (-1)于是,我就困惑了。如果EOF是一个特殊字符,那么假定每个文本文件的结尾都有一个EOF(也就是-1),还是可以做到的,因为文本对应的ASCII码都是正值,不可能有负值。但是,二进制文件怎么办呢?怎么处理文件内部包含的-1呢?这个问题让我想了很久,后来查了资料才知道,在Linux系统之中,EOF根本不是一个字符,而是当系统读取到文件结尾,所返回的一个信号值(也就是-1)。至于系统怎么知道文件的结尾,资料上说是通过比较文件的长度。所以,处理文件可以写成下面这样: int c; while ((c = fgetc(fp)) != EOF) { do something }这样写有一个问题。fgetc()不仅是遇到文件结尾时返回EOF,而且当发生错误时,也会返回EOF。因此,C语言又提供了feof()函数,用来保证确实是到了文件结尾。上面的代码feof()版本的写法就是: int c; while (!feof(fp)) { c = fgetc(fp); do something; }但是,这样写也有问题。fgetc()读取文件的最后一个字符以后,C语言的feof()函数依然返回0,表明没有到达文件结尾;只有当fgetc()向后再读取一个字符(即越过最后一个字符),feof()才会返回一个非零值,表示到达文件结尾。所以,按照上面这样写法,如果一个文件含有n个字符,那么while循环的内部操作会运行n+1次。所以,最保险的写法是像下面这样: int c = fgetc(fp); while (c != EOF) { do something;c = fgetc(fp); } if (feof(fp)) { printf("\n End of file reached."); } else { printf("\n Something went wrong."); }除了表示文件结尾,EOF还可以表示标准输入的结尾。 int c; while ((c = getchar()) != EOF) { putchar(c); }但是,标准输入与文件不一样,无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF。Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF(如果在一行的中间按下Ctrl-D,则表示输出"标准输入"的缓存区,所以这时必须按两次Ctrl-D);Windows中,Ctrl-Z表示EOF。(顺便提一句,Linux中按下Ctrl-Z,表示将该进程中断,在后台挂起,用fg命令可以重新切回到前台;按下Ctrl-C表示终止该进程。)那么,如果真的想输入Ctrl-D怎么办?这时必须先按下Ctrl-V,然后就可以输入Ctrl-D,系统就不会认为这是EOF信号。Ctrl-V表示按"字面含义"解读下一个输入,要是想按"字面含义"输入Ctrl-V,连续输入两次就行了。(完)

!=EOF在C语言里是什么意思,怎么用,请教高手

EOF 其实是个宏,定义为 -1

只要在不等于-1的时候都可以这样用,但是这个宏更多用来放在读文件的时候用,比如fgetc,读到文件结尾就返回-1,也就是EOF

char c;

while ( (c = fgetc(fp)) != EOF )

{

}

"eof"是什么意思?

EOF 本意是 End Of File,表明到了文件末尾。”EOF“通常与”“结合使用“EOF“表示后 续的输入作为子命令或子 shell 的输入,直到遇到”EOF“,再次返回到主调 shell,可将其理解为分界符(delimiter)。既然是分界符,那么形式自然不是固定的,这里可以将”EOF“可以进行自定义,但是前后的”EOF“必须成对出现且不能和 shell ?命令冲突。

while(scanf("%d",&n)!=EOF)是什么意思?

scanf("%d",n)从键盘输入一个定义给n。!=是不等于的意思。整句就是测试输入如果不等于EOF就进行下面的循环。EOF值从键盘是无法输入,所以输入的是不可能等于EOF的…

(责任编辑:IT教学网)

更多