• 【C语言】Oj题目常见问题如何处理文件尾


    C语言Oj题目常见问题-处理文件尾

    样例

    刷oj的时候有时候会碰到如下的题目,明明写对了,但仍然过不了

    1003 - A + B Problem

    时间限制:1秒 内存限制:128兆

    • 题目描述

      计算 A + B.

    • 输入

      每行将包含两个整数AB。直到文件结尾。

    • 输出

      每一行输出A+B的值。

      样例输入

      1 1
      

      样例输出

      2
      

      提示

      简单加法,注意处理文件尾。

    关于处理文件尾

    该题过不了的原因可能就在于提示的文字:“注意处理文件尾”

    文件尾是什么可以简单的用字符串的末尾的’\0’来类比。

    字符串在例遍的过程中需要标志来提示结束。

    文件在例遍的过程也要标志(文件尾)来提示结束。

    到oj里面意思其实是输入的样例不止一行,而有无数行,直到遇到文件尾就结束程序。

    解决方法

    就用while把主程序包围起来,一直输入一直运行
    直到遇到文件尾输入EOF就退出while循环结束程序。

    而普通程序运行一次a+b就退出。

    这个就能一直计算a+b。

    #include<stdio.h>
    
    int main(){
    	int a,b;
    	while(scanf("%d %d",&a,&b)!=EOF){    //输入循环
    		printf("%d + %d = %d\n",a,b,a+b);//主程序
    	}
        //while(~scanf("%d %d",&a,&b))也可以
    	return 0;
    } 
    

    至于如何输入文件尾手动结束

    一般这是oj后台处理了,后台判断文件它本身就是文件格式,就和字符串不需要你说明它在哪停下一样

    类比while(str[i]!=’\0’)例遍如此。

    而手动停止呢则输入^Z即可。

  • 相关阅读:
    win7系统宽带自动断开怎么解决【系统天地】
    Win10系统修复受损文件教程【系统天地】
    win10如何加快开机速度【系统天地】
    Netty核心概念(5)之Channel
    Netty核心概念(4)之Bootstrap
    漫谈NIO(3)之Netty实现
    漫谈NIO(2)之Java的NIO
    漫谈NIO(1)之计算机IO实现
    机器学习实战(二)决策树
    机器学习实战(一)k-近邻算法
  • 原文地址:https://www.cnblogs.com/404name/p/14634109.html
Copyright © 2020-2023  润新知