请先看下面一段程序:

 #include"stdio.h"

 int main()
{
char a[],t;
int i,j;
while(scanf("%s",a)!=EOF)
{
for(i=;i<;i++)
for(j=;j<;j++)
if(a[j]<a[i])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("%c %c %c\n",a[],a[],a[]);
}
return ;
}

1:对于以上的程序或许你没有疑问,只是实现对输入的数组进行ASCII排序,但是while(scanf("%s",a)!=EOF)在ACM比赛系统中的输入是个文件,文件就有EOF,EOF在读文件时就是结束,如果在本地(自己计算机上)测试,因为没有文件,所以没有结束,只能是关闭测试窗口才能结束。在自己的机器(称为本地机器)上做测试的话,写不写都是一样的,在ACM评测系统中必须得写。EOF是个常量,没有错啊,它指的就是输入结束,如果有文件输入的话,到结束的时候就是EOF,而ACM评测系统中的输入用例就是文件,所以要用EOF,它能自动停止,否则不能停止,会造成死循环。

C++中的cin>>m可以直接等同于在C中加上!=eof。它就自动就是结束了,从这个写法来看C++要比C写法简单。

2:能不能省略#incllude?

在C/GCC文件里应该可以省略头文件#include.但这次省略的时候却出现了编译错误,原因是在stdio.h中定义的“EOF”宏。“EOF”这个宏在编译的时候会转换成10-255以外的数字,包含poj在内的大多数运行环境都会把它转变成-1.如果省略了#include命令,就不能使用宏。因此把“EOF”转换成-1后,再删除#include命令试一试。

 float a,b=;
main()
{
for(;scanf("%f",&a)!=-;)
b+=a;
printf("$%.2f",b/);
}

3:重点不同处:

关于EOF:的更多相关文章

  1. linux下EOF写法梳理

    在平时的运维工作中,我们经常会碰到这样一个场景:执行脚本的时候,需要往一个文件里自动输入N行内容.如果是少数的几行内容,还可以用echo追加方式,但如果是很多行,那么单纯用echo追加的方式就显得愚蠢 ...

  2. php定界符<<<EOF讲解(转)

    Heredoc技术.可用来输出大段的html和javascript脚本 1.PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西: 2.在PHP定界符中的任何特殊字符都不需要转义:  ...

  3. while(cin.eof)出错 poj

    zoj遇到c++如何判定输入流结尾的问题,一不小心就超时了 楼下的代码可以通过zoj #include<iostream> using namespace std; int main(){ ...

  4. c++ eof()函数

    C++ eof()函数可以帮助我们用来判断文件是否为空,抑或是判断其是否读到文件结尾.在这里我们将会对其进行详细的介绍. C++编程语言中的很多功能在我们的实际应用中起着非常大的作用.比如在对文件文本 ...

  5. 【转】 解读EOF

    解读EOF 标签: fplinuxc语言filestream 2012-01-31 22:05 439人阅读 评论(0) 收藏 举报  分类: C.C++_程序设计(20)  我学习C语言的时候,遇到 ...

  6. Linux C 字符函数 getchar()、putchar() 与 EOF 详解

    首先给出<The_C_Programming_Language>这本书中的例子: #include <stdio.h> int main() { int c; c = getc ...

  7. Ext3文件系统mount选项和文件属性介绍

    mount选项 设置方式 ext3 mount选项可以通过多个方式进行设置:1)内核编译时: 内核menuconfig通过CONFIG_EXT3_DEFAULTS_TO_ORDERED编译控制选项,来 ...

  8. .NET 串口通信中断接收,包含0X1A(作为EOF)

    .NET串口通信中将`0X1A`当做EOF处理,.NET接收到EOF会触发一次接收中断,此时事件形参`SerialDataReceivedEventArgs`值为枚举 `Eof`,其他为`Chars` ...

  9. 常见的getchar 与EOF的问题

    代码中常有类似的如下的输入循环 char  c; while((c=getchar())!=EOF).... 如果输入 字符+换行时,循环的代码会执行两次,主要是换行键作为字符存到了缓存队列中,第一次 ...

  10. PHP eof的使用

    PHP eof的使用 也就是heredoc技术,来部分实现界面与代码的分离 <?php $name = '张三'; print <<<EOT <html> < ...

随机推荐

  1. [ SHELL编程 ] 自动删除操作系统用户

    Linux中经常需要删除用户,通常手工操作执行userdel操作即可,如果删除失败出现错误提示按照提示错误进行操作即可.如果是脚本需要调用删除用户操作呢?利用如下实例中drop_user删除用户函数, ...

  2. week5 0.1 安装materializecss

    用ATOM打开项目 App是什么呢?就是App.js 我们将不需要的删掉 用一下materialize(类似bootstrap的东西) 官网https://materializecss.com/ 想用 ...

  3. JAVAWEB 一一 userweb2(升级,servlet版,jstl和el)

    创建数据库和表 首先,创建一个web项目 然后引入jar包(jstl.jar和standard.jar是jstl和el包,在jsp页面中需要手动加 <%@ taglib uri="ht ...

  4. arcgis python arcpy add data script添加数据脚本

    arcgis python arcpy add data script添加数据脚本mxd = arcpy.mapping.MapDocument("CURRENT")... df ...

  5. DBCC维护语句语法

    一.DBCC维护语句:对数据库.索引或文件组进行维护的任务--1.DBCC CLEANTABLE,回收删除的可变长度列和文本列的空间 DBCC CLEANTABLE  ( { 'database_na ...

  6. Pandas数据存取

    pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA']) Pandas数据存取 Pandas可以存取多种介质类型数据, ...

  7. 导出excel时设置单元格格式(避免类似0100的数字丢失前面的0)

    <td style="vnd.ms-excel.numberformat:@;"><s:property value="accountCode" ...

  8. import模块

    一.在import模块的时候发生的事情 1.寻找模块2.如果找到了,就开辟一块空间,执行这个模块3.把这个模块中用到的名字都录到新开辟的空间中4.创建一个变量来引用这个模块中 二.注意事项: *1.模 ...

  9. 对于“2017面向对象程序设计(Java)第就十周学习总结”存在问题的反馈

    1.“学生们普遍反映对泛型相关知识点的理解有一些难度,而且对泛型有关程序的编写有些困难.希望老师再次讲解.同学们普遍反映第四.第五个实验较难,大部分同学不能独立完成实验,希望老师能在课堂上详细解答.根 ...

  10. springboot jpa 审计

    @SpringBootApplication @EnableJpaAuditing public class Application {...} @Component public class Aud ...