C++输入结束

通过判断输入是否等于EOF,可以结束输入。

EOF 是个宏,其意思是:End Of File,文件尾标志。 从数值上来看,就是整数-1。

在C语言的头文件中对其进行了宏定义:

libio.h:    # define EOF (-1)

当读文件操作时,遇到文件结束位置或读数据出错均会返回 EOF。 (C语言中所有的输入输出操作均是按读文件的思想来设计的,或者说,是文件操作的一种特例,如getchar()就是fgetc(stdin) 的一个宏 )。int getchar() ; //从标准输入缓冲区读取一个字符,成功返回该字符的ASCII值,出错,返回EOF。

如何在键盘输入时,产生EOF呢? 不同的系统方法不同:

linux系统下,在输入回车换行后的空行位置,按 ctrl+d (先按ctrl键,不放,再按d键),windows系统下,在输入回车换行后的空行位置,按 ctrl+z,再回车确认。

#include <stdio.h>
void main()
{
    int ch;
    do {
        ch=getchar();
        printf("ch=%d\n", ch ); //输出读返回的ch值,读到EOF会输出-1
    } while ( ch!=EOF );
}
时间: 2024-10-10 06:48:12

C++输入结束的相关文章

java OJ题目判断输入结束(与C语言的EOF结束等价)

/* * java 作Oj题目是会有输入若干数据的情况,不好判断输入结束符, * 类似于C语言中的EOF符号 * 在这里提供了一种方法 * */ 1 import java.util.Iterator; 2 import java.util.Scanner; 3 import java.util.TreeSet; 4 5 public class StudentCode { 6 7 public static void main(String[] args) { 8 TreeSet<Intege

关于任意输入结束的问题(转)

关于不确定行数的输入 有些时候 ,问题并没有给定输入数据的行数,也没有给出输入结束的标记. 问题1:将字符串大写变小写,小写变大写   输入:n行字符串,每一行字符串不超过300   输出:n行字符串. 这些题目并没有输入数据到底有多少,也没有结束标记.此时,我们该如何读入数据呢? 假设题目是以文件输入输出.则文件的末尾必有一个文件结束标记.该标记为不可见字符,我们用EOF来表示. 那么在输入的时候,如果我们用的是fscanf,我们可以在以fscanf(……)!=EOF来作为循环的条件.如果到了

如何读入一系列数据,当输入-1表示输入结束

scanf("%d",&n);            while(n != -1){       ? ?        scanf("%d",&n);    //在解题时最困扰我的文体,如何输入一些列数的方法     }

调用 get(fgetc) 和 putc(fputc) 函数进行输入、输出

当成功地打开文件后,接下来的事情就是对文件进行输入或输出操作,最简单的是调用 getc(或 fgetc) 和 putc(或 fputc) 函数进行字符的输入和输出. 1.调用 putc(或 fpuct) 函数输出一个字符 putc 函数的调用形式如下: putc(ch, fp); 这里 ch 是待输出的某个字符,它可以是一个字符常量,也可以是一个字符变量:fp 是文件指针.putc(ch, fp) 的功能是将字符 ch 写到文件指针 fp 所指的文件中去.如果输出成功,putc 函数返回所输出的

题目1434:今年暑假不AC (项目安排类:结束时间快排,判断开始时间)

题目描述: “今年暑假不AC?”“是的.”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%...”确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事).非常6+7.超级女生,以及王小丫的<开心辞典>等等,假设你已经知道了所有你喜欢看的电视节目的转播时间表,你会合理安排吗?(目标是能看尽量多的完整节目) 输入:     

输入框文本输入限制问题以及中文输入法下字符阶段的处理

输入框文本字数限制问题以及中文输入法下字符截断处理 上次博文写过处理实时获取输入表单的值,传送门: 博文地址.这次又需要处理输入框文本字数限制问题,前期的步骤思想其实就是要先实时获取输入框的值然后得到长度. 使用onkeyup判断字符长度 可以参考我前面写的博文,地址如上.onkeyup确实是可以做到实时获取的效果,因此我就是使用键盘事件来达到效果.HTML代码: <div class="content"> <textarea name="complain&

关于char类型的连续输入

这个忘了好久了 先回想吧 一 单字符 ①  char m; scanf("%d",&m); ② char m; m=getchar(); putchar(m); 二 字符数组(字符串) ①   char a[10]; int i; for(i=0;i<10;i++){ scanf("%c",&a[i]); } ②   char a[10]; gets(a[10]); puts(a[10]); 书本上的 我今天用的连续输入char o,p,q;

&lt;转&gt;C++输入cin详解

输入原理: 程序的输入都建有一个缓冲区,即输入缓冲区.一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据.正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入 #1: 1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 char str[8]; 6 cin.getline(str, 5);

关于OJ的输入和输出(转)

ACM竞赛之输入输出以下内容来源于互联网.在ACM程序设计竞赛中,一道题目的所有测试数据是放在一个文本文件中,选手将一道题目的程序提交给评判系统运行,程序从该文件中读取测试数据,再把运行结果输出到另一个文本文件中.系统把输出文件与标准答案比对,来评判程序编写得正确与否.ACM现场赛采用的输入输出形式有(1)文件输入.标准输出:(2)文件输入.文件输出:(3)标准的输入输出.而Web形式的ACM程序设计在线评判系统一般采用标准的输入输出,但输入结束有文件末尾标识(EOF),这可以用于确定输入结束.