eof 订阅
EOF是一个计算机术语,为End Of File的缩写,在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。通常在文本的最后存在此字符表示资料结束。 展开全文
EOF是一个计算机术语,为End Of File的缩写,在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。通常在文本的最后存在此字符表示资料结束。
信息
全    称
End Of File
应    用
档案存取
外文名
EOF
释    义
资料源无更多的资料可读取
中文名
文件结束符
学    科
计算机
EOF概述
从一个终端的输入从来不会真的“结束”(除非设备被断开),但把从终端输入的数据分区成多个“文件”却很有用,因此一个关键的序列被保留下来来指明输入结束。在UNIX和AmigaDOS中,将击键翻译为EOF的过程是由终端的驱动程序完成的,因此应用程序无需将终端和其它输入文件区分开来。Unix平台的驱动程序在行首传送一个传输结束字符(Control-D,ASCII编码为为04)来指明文件结束。在AmigaDOS中,驱动程序传送一个Control-\来指明文件结束(而Control-D被用作中断字符)。要向输入流中插入一个真正的Control-D字符,用户需要把一个“引用”命令字符放在它的前面(通常是Control-V,表示下一个字符不作为控制字符,而是按照字面量使用)。在微软的DOS和Windows(以及CP/M和许多DEC操作系统)中,读取数据时终端不会产生EOF。此时,应用程序知道数据源是一个终端(或者其它“字符设备”),并将一个已知的保留的字符或序列解释为文件结束的指明;最普遍地说,它是ASCII码中的替换字符(Control-Z,代码26)。一些MS-DOS程序,包括部分微软MS-DOS的shell(COMMAND.COM)和操作系统功能程序(如EDLIN),将文本文档中的Control-Z视为有意义数据的结尾,并且/或者在写入文本文档时将Control-Z添加到文档末尾。这是由于两个原因:
收起全文
精华内容
下载资源
问答
  • EOF

    千次阅读 2019-10-25 19:12:00
    EOF自定义终止符用法  我们在脚本中经常会发现使用EOF的情况。EOF可以结合cat命令对内容进行追加。比如:执行脚本的时候,需要往一个文件里自动输入多行内容。如果是少数的几行内容,可以用echo命令追加,但如果是...

    EOF自定义终止符用法

      我们在脚本中经常会发现使用EOF的情况。EOF可以结合cat命令对内容进行追加。比如:执行脚本的时候,需要往一个文件里自动输入多行内容。如果是少数的几行内容,可以用echo命令追加,但如果是很多行,那么单纯用echo追加的方式就不太适合了。

    1.语法格式:
    <<EOF        //开始
    ....
    EOF         //结束

    PS:EOF不是固定的,可以自定义其他,但需注意,结束符和起始符要保持一致

    2.重定向符号:
    < :输入重定向
    > :输出重定向
    >> :输出重定向,追加,不覆盖之前内容
    << :标准输入来自命令行的一对分隔号的中间内容.
    3.案例:
    [duoduo@hadoop100 files]$ cat << EOF >> file1.txt
    > 123
    > 456
    > EOF
    #自定义终止符
    [duoduo@hadoop100 files]$ cat >> file1.txt << FF 
    > 123
    > 456
    > FF

    文件内容

    [duoduo@hadoop100 files]$ cat file1.txt 
    123
    456
    123
    456
    展开全文
  • eof

    2014-07-12 22:06:35
    EOF是什么? 作者: 阮一峰 我学习C语言的时候,遇到的一个问题就是EOF。 它是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准...

    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的意义及用法(while(scanf("%d",&n) != EOF))

    万次阅读 多人点赞 2018-10-13 17:11:30
    EOF,为End Of File的缩写,通常在文本的最后存在此字符表示资料结束。 在微软的DOS和Windows中,读取数据时终端不会产生EOF。此时,应用程序知道数据源是一个终端(或者其它“字符设备”),并将一个已知的保留的...

    EOF,为End Of File的缩写,通常在文本的最后存在此字符表示资料结束。
    在微软的DOS和Windows中,读取数据时终端不会产生EOF。此时,应用程序知道数据源是一个终端(或者其它“字符设备”),并将一个已知的保留的字符或序列解释为文件结束的指明;最普遍地说,它是ASCII码中的替换字符(Control-Z,代码26)。
    在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。
    档案存取或其它 I/O 功能可能传回等于象征符号值 (巨集) EOF 指示档案结束的情形发生。实际上 EOF 的值通常为 -1,但它依系统有所不同。巨集 EOF会在编译原始码前展开实际值给预处理器。
    C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。
    例如:

    #include <stdio.h>
    int main(){
    	int n;
    while(scanf("%d",&n) != EOF){ 
    	
    }
    	return 0;
    }
    

    当上面的程序运行时,如果不加" != EOF",那么这个程序就是个死循环,会一直运行下去;加上" != EOF"后该程序就不是死循环了,如果在终端不进行输入该程序会自动结束(while的意思就是说当当前输入缓存还有东西时就一直读取,直到输入缓存中的内容为空时停止)。
    在这"scanf("%d",&n) != EOF"相当于"scanf("%d",&n) != EOF",或"~scanf("%d",&n)",或"scanf("%d",&n) == 1 " 。scanf的返回值由后面的参数决定

    有小伙伴会问到上面那个程序怎么结束呢?
    要注意的是:在终端(黑框)中手动输入时,系统并不知道什么时候到达了所谓的“文件末尾”,因此需要用<Ctrl + z>组合键然后按 Enter 键的方式来告诉系统已经到了EOF,这样系统才会结束while.

    scanf("%d%d", &a, &b);
    如果a和b都被成功读入,那么scanf的返回值就是2;如果只有a被成功读入,返回值为1;如果a和b都未被成功读入,返回值为0;如果遇到错误或遇到end of file,返回值为EOF,且返回值为int型。

    但是在C++中不存在这种用法,但相同作用的有while((cin >> a) != 0):
    以前不理解在while里面用cin >> a;是什么意思,cin是C++的输入流对象,">>"是重载的运算符,cin>>的返回值是cin对象。用这个当条件的话,通过检测其流的状态来判断结束;
    (1)若流是有效的,即流未遇到错误,那么检测成功;
    (2)若遇到文件结束符,或遇到一个无效的输入时(例如本题输入的值不是一个整数),istream对象的状态会变为无效,条件就为假;读取失败的时候,就不能继续读取了,那么读取操作结束,while(cin>>a)就返回false,跳出循环!
    C++中的while (cin>>n,n):
    他的作用是:输入一个数,这数不为0时进入循环,为0时跳出循环。

    采纳:“https://www.cnblogs.com/tgycoder/p/4958519.html”

    输入(cin)缓冲是行缓冲。当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储。每当按下回车键后,cin 就会检测输入缓冲区中是否有了可读的数据,这种情况下cin对键盘上是否有作为流结束标志CTRL+Z或者CTRL+D,其检查的方式有两种:阻塞式以及非阻塞式。

    阻塞式检查方式指的是只有在回车键按下之后才对此前是否有 Ctrl+Z 组合键按下进行检查,非阻塞式样指的是按下 Ctrl+D 之后立即响应的方式。如果在按 Ctrl+D 之前已经从键盘输入了字符,则 Ctrl+D的作用就相当于回车,即把这些字符送到输入缓冲区供读取使用,此时Ctrl+D不再起流结束符的作用。如果按 Ctrl+D 之前没有任何键盘输入,则 Ctrl+D 就是流结束的信号。
    阻塞式的方式有一个特点:只有按下回车之后才有可能检测在此之前是否有Ctrl+Z按下。

    参考:百度百科。

    展开全文
  • Python3错误:SyntaxError: unexpected EOF while parsing

    万次阅读 多人点赞 2019-01-07 22:05:02
    Python错误SyntaxError: unexpected EOF while parsing 含义是:解释器到底了度没找到它要找到的东西 出现以上错误,仔细检查代码后还是没有找到错误,一般是以下原因: 1 语法有问题,一般都是少了print最后的一个...

    Python 全栈工程师核心面试 300 问深入解析(2020 版)----全文预览

    Python 全栈工程师核心面试 300 问深入解析(2020 版)----欢迎订阅

    Python错误SyntaxError: unexpected EOF while parsing

    含义是:解释器到底了都没找到它要找到的东西

    出现以上错误,仔细检查代码后还是没有找到错误,一般是以下原因:

    1 语法有问题,一般都是少了print最后的一个括号,我当时碰到是因为print(d.drop()少打了一个括号,别盲目的相信自动补全自己认真检查一下,肯定这行代码少了或者多了东西,希望有用。

    2 输入语法肯定有问题,有时候忘了切换中英文输入法,可以删除了重新输入

    展开全文
  • unexpected EOF

    2020-12-09 00:10:38
    unexpected EOF, unexpected EOF unexpected EOF, unexpected EOF unexpected EOF, unexpected EOF unexpected EOF, unexpected EOF unexpected EOF, unexpected EOF unexpected EOF, unexpected EOF unexpected EOF...
  • EOF字符

    2020-04-03 16:05:02
    EOF字符输入方法: 在命令行输入界面输入ctrl+z即可。 EOF字符在stdio.h文件中定义为-1 #define EOF (-1) 什么时候产生EOF字符 1、scanf函数 (1)检测到文件结尾时,返回EOF (2)转换值之前出问题,返回EOF 2...
  • MATLAB_EOF.zip

    2020-01-29 15:48:11
    EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF代码EOF...
  • Shell 的EOF使用

    2021-01-07 05:20:18
    文章目录EOF的介绍使用方法 EOF的介绍 Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。 示例 <<EOF> test.text > test 1234 > 5678 > ...
  • 关于EOF

    2019-04-27 18:44:00
    EOF(End of File),是ASCII码中的替换字符(Control-Z,代码26)。 EOF不是特殊字符,而是定义在<stdio.h>中的一个常量,一般等于-1。#define EOF (-1) 以EOF作为文件结束标志的文件,必须是文本文件。在...
  • early EOF

    千次阅读 2020-05-27 10:41:58
    early EOF 1 错误EOF $ git clone https://gitlab.***.net***/***.git Cloning into '***'... remote: Enumerating objects: 32488, done. remote: Counting objects: 100% (32488/32488), done. remote: ...
  • linux EOF

    2020-02-08 16:36:07
    EOF: END OF FILE >>输入追加 >输入重定向 <输出重定向 <<输出追加 [root@k8s-master test2]# ll 总用量 0 [root@k8s-master test2]# cat <<EOF >test1.txt > A > B > ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,691
精华内容 17,076
关键字:

eof