IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 2021-09-05 -> 正文阅读

[C++知识库]2021-09-05


前言

本片blog主要针对牛客网初学者编程训练中的几道题,来说一下EOF的使用,比较浅显易懂啊!


提示:以下是本篇文章正文内容,主要分两部分展示,第一部分简单说一下EOF是什么,以及用EOF干什么;第二部分则摘取练习中几道典型例题给讲一讲,好!我们开始。

一、EOF的含义

??EOF的全称为End Of File,直译过来便是文件的结尾,查阅手册得出:EOF是指当遇到文件结尾(或在某些情况出现错误)时,由I/O例程返回。这句话理解起来还是有那么点晕,直白些说:输入完成后可以通过返回值(-1)结束输入。
??使用EOF可以令C语言的输入更加多样化,通常会配合输入函数scanf()与getchar()使用,使用scanf()与EOF可以进行多组同类型输入,而使用getchar()与EOF可以从键盘获得所需的多组输入,下面就具体的例题和代码进行详细解说。

二、EOF的应用

1.数字输入

??在这里使用函数scanf()与EOF完成要求的多组输入,如下两道题所示,当输入到末尾时,scanf()会返回EOF,而EOF此时的值便是-1,因而while(-1)结束循环,完成多组输入。

第一题简介

#include <stdio.h>

int main()
{
		int i = 0;
        while(scanf("%d",&i) != EOF)//注意这一句
        {
          printf("%d\n",1<<i);
        }
        return 0;
}

第二题简介

#include <stdio.h>
	
int IsAngle(int a,int b,int c)
{
	if(a+b > c && a+c > b && b+c > a )
	    return 1;
	else
	    return 0;
}
	
int main(){
	int a,b,c;
	while((scanf("%d%d%d",&a,&b,&c)) != EOF)//注意这里
	{
	   int k = IsAngle(a,b,c);
	   if(k == 1)
	    {
		    if(a == b ||a == c ||c == b )
	    	{
	        	if(b == c && a == b)
	               printf("Equilateral triangle!\n");
	            else
	               printf("Isosceles triangle!\n");
	         }
	         else
	            printf("Ordinary triangle!\n");
	        }
	   else
	       printf("Not a triangle!\n");
	   }
	   return 0;
	}

2.字符输入

??在这里使用函数getchar()与EOF完成字符的输入,这里主要列举了三个例子,分别是:多行字符输入;长字符序列输入;多行字符串输入。这其中需要注意在进行多行输入时需要对换行符’\n’,使用getchar()进行吸收。
第三题简介

#include <stdio.h>
	
int main(){
	char ch;
	while((ch = getchar()) != EOF)//注意此行
	{
		getchar();//getchar不认为回车换行为转义符,因而需要对其进行吸收
	    if((ch>='a'&&ch<='z') || (ch>='A'&&ch<='Z'))
	    {printf("YES\n");}
	    else
	     printf("NO\n");
	 }
	return 0;
}

第四题

#include <stdio.h>
		
int main(){
	char a;
	int count1 = 0;
	int count2 = 0;
	while((a=getchar()) != '0' && (a!=EOF))
	{
	    if(a == 'A')
	          count1++;
	    else
		      count2++;
	 }
	if(count1 > count2)
	 {
	    printf("A");
	 }
	else if(count1 < count2)
	     printf("B");
	else
	     printf("E");
	return 0;
}

第五题简介

#include <stdio.h>
#include <string.h>
	
	
int main()
{
	char admin[6] = "admin";
	char password[6] = "admin";
	char a[100],b[100];
	while(scanf("%s %s",a,b) != EOF)//注意:字符串输入
	{
		int i;
	    int flag = 0;
	    for(i=0;(admin[i] !='\0')||(password[i]!='\0');i++)
	    {
	    	if((a[i] != admin[i])||(b[i] != password[i]))
	        {
	        	flag = 1;
	            break;
	         }
	    }
	    if(flag == 1)
	    	printf("Login Fail!\n");
	    else
	        printf("Login Success!\n");        
	}
	return 0;
	}

三、总结

??最后,简单总结一下EOF的添加使得字符的输入更加灵活,相比于单独使用scanf与getchar,EOF可以扩展这两个函数的实用功能,灵活学习和使用EOF可以减少代码练习时,开始遇到的难题,熟能生巧,多多练习,加深记忆。
??本blog中所有的例题全部来自于牛客网,在此附上网页链接:
牛客网-编程语言初学训练营

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-06 10:59:24  更:2021-09-06 11:00:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 20:43:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计