先看一段代码

代码

/* 将输入复制到输出:

读一个字符
while(该字符不是文件结束指示符)
输出刚读入的字符
读下一个字符
*/
#include <stdio.h>

int main()
{
int c;

while((c=getchar())!= EOF)
{
putchar(c);
}
return 0;
}

  如何区分文件中的有效数据和输入结束符呢?

  C语言采用的解决办法是:在没有输入时getchar函数将返回一个特殊值,这个特殊值与任何实际字符都不同。这个值成为EOF(end of file ,文件结束)。我们在声明变量c 的时候,必须让它大到足以存放getchar函数返回的任何值。之所以不把c声明成char类型,是因为它必须足够大,除了能存储任何可能的字符外还要能存储文件结束符EOF。

  EOF的输入由系统锁定。windows下是ctrl+z,linux/unix下是ctrl+d,具体可以s参考这里。

打印EOF的值

/* 打印EOF的值
*/
#include <stdio.h>

int main()
{
printf("EOF is %d\n",EOF);
return 0;
}

  符号常量EOF是在头文件<stdio.h>中定义的。程序中,printf()语句双引号外的EOF将被替换为头文件<stdio.h>中

    #define EOF

定义的值。不同的系统中,被定义的值不唯一。这也是使用EOF等标准常量能够增加程序可移植性的原因所在。

转载于:https://www.cnblogs.com/Ryan_j/archive/2011/01/09/1931513.html

C语言中的EOF符号常量相关推荐

  1. C语言中的EOF和feof()

    在c语言中经常用EOF和feof()来判断文件的结束,现将有关用法总结如下: 定义 EOF是End Of File 的缩写,是c语言中标准库中定义的宏,定义为:#define  EOF  (-1):  ...

  2. c语言中eof的作用,深入解读C语言中的符号常量EOF

    EOF是指文件的结束符,是一个宏定义 借助于getchar 与putchar 函数,可以在不了解其它输入/输出知识的情况下编写出 数量惊人的有用的代码.最简单的例子就是把输入一次一个字符地复制到输出, ...

  3. C语言中EOF的应用

    C语言中EOF的应用 2008年06月26日 星期四 13:58 1.5.1. 文件复制 借助于getchar 与putchar 函数,可以在不了解其它输入/输出知识的情况下编写出 数量惊人的有用的代 ...

  4. c语言中区别一般变量,C语言中,为了区别一般的变量,符号常量必须用

    C语言中,为了区别一般的变量,符号常量必须用大写字母表示.(?) 答:错 ,维也纳古典乐派代表人物之一,欧洲古典主义时期作曲家.因其对古典音乐的重大贡献,对奏鸣曲式和交响曲套曲结构的发展和创新,而被后 ...

  5. 关于c语言中EOF用法的理解

    作者:Senlern 转载请注明,原文链接:http://blog.csdn.net/zhang429350061/article/details/8760636 首先看一下EOF的官方解释: 计算机 ...

  6. 在c 语言中 引用数组元素时,【单选题】在 C 语言中,引用数组元素时,其数组下标的数据类型不允许是 A. 整型常量 B. 整型表达式 C. 整形符号常量 D. 整型变量...

    [单选题]在 C 语言中,引用数组元素时,其数组下标的数据类型不允许是 A. 整型常量 B. 整型表达式 C. 整形符号常量 D. 整型变量 更多相关问题 [单选] 焖饭和蒸饭哪个更节省燃气?() [ ...

  7. C语言中EOF的用法及不同环境下的使用

    C语言中EOF的含义是end of file,即文件结束符,但是不仅仅是在文件中使用,在输入的时候也可以使用.EOF的值是-1.在文本文件中才能使用EOF作为结束符.在使用scanf输入的时候,如果输 ...

  8. c语言eof不起作用,c语言中EOF的用法

    c语言中EOF的用法以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c语言中EOF的用法 1.EOF是end of fi ...

  9. c语言中switch语句流程图_全国计算机二级知识点汇总(C语言等)

    点击蓝字 关注我们 全国计算机二级知识点汇总 算法的有穷性是指:算法程序的运行时间是有限的 算法的空间复杂度是指:算法在执行过程中所需要的临时工作单元数 算法的时间复杂度是指:算法在执行过程中所需要的 ...

最新文章

  1. UWP Composition API - RadialMenu
  2. DLL 的导入与导出
  3. 12-16php测试题
  4. 16-python基础5-文件读写操作
  5. 嵌入式开发硬件知识札记
  6. 什么电脑的牌子好用_扬州诚招电动牙刷代理有什么牌子比较好用
  7. Java面试——RabbitMQ系列总结
  8. (51)多路时钟复用概述
  9. linux打包根目录
  10. Python常用模块 之 base64模块
  11. LWN: lockless编程模式——relaxed access和partial memory barrier
  12. [娱乐]帝国时代I:罗马复兴秘籍
  13. 编译安装httpd服务
  14. Apache Ozone0.4.0调研
  15. 传大疆北美裁员1/3,离职高管透露内部斗争严重
  16. 利用python如何抓取微博评论?
  17. 逻辑地址 与物理地址的转换
  18. 大数据缺省值插补方法(回归填补[stochastic regression imputation],聚类填补,。。)
  19. python3 模块大全_Python3 模块 | 菜鸟教程
  20. [MICCAI2019]Multi-view Learning with Feature Level Fusion for Cervical Dysplasia Diagnosis

热门文章

  1. CentOS安装rpm包时遇到Header V3 DSA signature: NOKEY时解决办法
  2. iOS开发点击UIButton实现UIView的旋转
  3. 调度策略的测试方法及其自动化
  4. MySQL Performance-Schema(一) 配置篇
  5. VWware安装ubuntu设置静态IP
  6. property的修饰符
  7. C++实现简单选择排序
  8. Java并发编程—什么是线程?
  9. Java并发编程—JUC的Lock锁
  10. 浅谈Mybatis的一级缓存和二级缓存