eof是什么意思?

eof是什么意思?,第1张

eof在c语言中表示文件结束符。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。

在文本文件中,数据都是以字符的ASCII代码值的形式存放。ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。

档案存取或其它 I/O 功能可能传回等于象征符号值 (巨集) EOF 指示档案结束的情形发生。实际上 EOF 的值通常为 -1,但它依系统有所不同。巨集 EOF会在编译原始码前展开实际值给预处理器。

C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。

扩展资料

在 UNIX中, EOF表示能从交互式 shell (终端) 送出 Ctrl+D (习惯性标准)。在微软的 DOS 与 Windows 中能送出 Ctrl+Z。在某些例子处理纯文字档案或从"字元设备"读入资料,微软MS-DOS的 shell 或系统程序会加入ASCIIControl-Z 字元到磁碟档案结束处 (尽管基本核心MSDOSSYS档案写入呼叫从未附加 Control-Z)。

向下相容于一些奇特的CP/M功能,从CP/M 档案系统只能就记录的档案长度分配多少 128 位元 "记录"。MS-DOS 档案系统从一开始就能精确的记录档案的位元长度。

ASCII控制字符在字元串流是 out-of-band 不可列印字元。通常表可读的助忆码。在控制台要输入eof的话 按ALT+65535就可以。

C语言中的EOF就是宏定义的0而已,只要输入Ctrl+Z,或者规定不允许输入的数据,或者根本不能是用于输入的数据,都算是读到了EOF。

比如变量int x;

想要打印来自键盘的输入,即:

if (scanf("%d", &x) == 1)
    printf("%d", x);

也可以写:

if (scanf("%d", &x) != EOF)
    printf("%d", x);

但是如果你想输入两个变量,就只能写:

if (scanf("%d %d", &x, &y) == 2)
    printf("%d %d", x, y);

因为写 != 0 并不能保证多个变量都输入成功。如果你想等到任何一个变量读到EOF的时候就终止 *** 作,此时也可以写 != EOF。

scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
如:scanf("%d,%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
因此,若要用回车控制输入结束,请把scanf放在while条件的外面,用判断a 的长度的方式来控制while循环。

你的代码没处理,不知道你啥问题
EOF结束的话,可以这样用:
int n;
while(scanf("%d",&n)!=EOF)
{
/add your code/
}
你的问题:
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
scanf("%d", &a[i][j]);/取地址/
}

while(scanf(“%d %d”,&a,&b)!=EOF)
按整型格式输入 a b 的值,两值之间用空白分隔。
如果只输入了一个值,它会等待你输入第二个值。
如果 按 Ctrl-C (同时 按 Ctrl键和C键)就拍入了 EOF 信号,循环终止。
遇到 0 结束:
while(scanf(“%d %d”,&a,&b)!=EOF)
{
if (a == 0) break;
。。。
}
但仍需你输入2个数。
-----------------------------
只需1个:
int a,b;
while(1)
{
if ( scanf("%d",&a)==EOF) break;
if (a == 0) break;
scanf("%d",&b);
printf("%d %d\n",a,b);
};
看完上面的几个列子 你应该知道自己怎么写了吧。。。呵呵祝你好运
#include <stdioh>
#include <stringh>
int main()
{
char a[100],i,s;
printf("Sample output:\n");
while(scanf("%s",&a)!=EOF)
{
if ( !strcmp(a,"exit") )
{
return 0;
}
s=strlen(a);
for(i=s-1;i>=0;i--)
printf("%c",a[i]);
printf("\n");
}
return(0);
}
我帮你改了断代码,你只要输入exit就自动退出了。

eof
是个宏,其意思是:end
of
file,文件尾标志。
从数值上来看,就是整数-1
在c语言的头文件中对其进行了宏定义:
libioh: # define eof (-1)当读文件 *** 作时,遇到文件结束位置或读数据出错均会返回
eof。
(c语言中所有的输入输出 *** 作均是按读文件的思想来设计的,或者说,是文件 *** 作的一种特例,如getchar()就是fgetc(stdin)
的一个宏

int getchar() ; //从标准输入缓冲区读取一个字符,成功返回该字符的ascii值,出错,返回eof那么,如何在键盘输入时,产生eof呢?
不同的系统方法不同:
linux系统下,在输入回车换行后的空行位置,按
ctrl+d
(先按ctrl键,不放,再按d键)
windows系统下,在输入回车换行后的空行位置,按
ctrl+z,再回车确认
以下代码供参考:
#include
void main()
{
int ch;
do {
ch=getchar();
printf("ch=%d\n", ch ); //输出读返回的ch值,读到eof会输出-1
} while ( ch!=eof );
}

因为当用getchar进行输入时,如果输入的第一个字符为有效字符(即输入是文件结束符EOF,Windows下为组合键Ctrl+Z, Unix/Linux下为组合键Ctrl+D),那么只有当最后一个输入字符为换行符'\n'(也可以是文件结束符EOF,EOF将在后面讨论)时, getchar才会停止执行,整个程序将会往下执行。
运行程序:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13326230.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-15
下一篇 2023-07-15

发表评论

登录后才能评论

评论列表(0条)

保存