C++从键盘输入文件结束符

        当我们使用一个istream对象作为条件时,其效果是检测流的状态。如果流是有效的,即流未遇到错误,那么检测成功。当遇到文件结束符,或遇到一个无效输入时(例如需要将输入读到一个int变量中,但实际从键盘输入的是字符),istream对象的状态会变成无效。处于无效的istream对象会是条件变为假。

当从键盘向程序输入数据时,对于如何指出文件结束符,不同的操作系统有不同的实现。在Windows平台中,输入文件结束符的方法是:按Ctrl+z,然后按Enter。在Unix或Linux下是按Ctrl+d,无需Enter,当然,由于当你输入Ctrl+d后,它仍然停留在系统的输入缓冲区中,所以你还是需要使用一个Enter使其生效。下面是几个关于该用法的示例:

#include <iostream>

#include <string>

using namespace std;

/*

测试标准输入cin和文件结束符

测试平台:Windows

*/

int test_string_one();

int test_string_two();

int test_string_three();

int main()

{

//test_string_one();

test_string_two();

}

int test_string_one() //第一个程序:输入的是整数

{

int num;

while(cin>>num)

cout << num << " ";

return 0;

}

/*

输入:1 2 3 4 5 Ctrl+d Enter

输出:1 2 3 4 5

此处之所以循环停止,是因为遇到一个无效输入(Ctrl+d),而不是遇到了文件结束符。

因为在windows平台,结束符是Ctrl+z,然后按Enter。

例如输入:1 2 3 4 5 a Enter

输出仍是:1 2 3 4 5

当然如果该测试用例用于Linux下,那么由于系统的结束符是Ctrl+d,所以虽然输出一样,

但是之所以循环停止,是因为到达了文件结束,而不是得到了一个无效输入。

*/

int test_string_two() //第二个程序:输入的是字符串

{

string word;

while(cin>>word)

cout << word << " ";

return 0;

}

/*

输入:hello world Ctrl+z 回车

输出:hello world

此处之所以循环停止,是因为遇到一个文件结束符。

因为在windows平台,结束符是Ctrl+z,然后按Enter。

*/

C++从键盘输入文件结束符

时间: 2024-08-10 21:29:09

C++从键盘输入文件结束符的相关文章

Java基础-输入输出-2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt

2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt package Test03; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import jav

编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt

package zuoye; import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream; public class IoDemo { public static void main(String[] args) { File file = new File("d:/zuoye"); if(!file.exists()) { file.mkdirs(); } File f=new

初识输入输出

C++语言并没有定义任何输入输出(IO)语句,取而代之,包含了一个全面的标准库来提供IO机制. 标准输入输出对象: 标准库定义了4个IO对象.为了处理输入,我们使用一个名为cin的istream类型的对象.这个对象也被称为标准输入.对于输出,我们使用一个I名为cout的ostream类型的对象,此对象也被称为标准输出.标准库还定义了其他两个ostream对象,名为cerr和clog.我们通常用cerr来输出警告信息和错误消息,因此被称为标准错误.而clog用来输出程序运行时的一般信息. 向流写入

关于C++读取数量不定的输入数据

关于C++读取数量不定的输入数据 #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> int main() { int sum = 0, value = 0; // 读取数据直到遇到文件尾,计算所有读入的值的和  while (std::cin >> value) sum += value; // 等价于sumsum = sum + value  std::cout << "Sum is: " 

C++Primer再起航

本文介绍: 编写简单的C++程序 初窥输入/输出 关于注释 控制结构 类的简介 参考文献 编写简单的C++程序 `int main() { return 0; }` 1. 每个 C++ 程序都包含一个或多个函数,而且必须有一个命名为 main.函数由执行函数功能的语句序列组成.操作系统通过调用main 函数来执行程序 2. main 函数则执行组成自己的语句并返回一个值给操作系统. 3. main 函数的返回值必须是 int 型,该类型表示整数.int 类型是内置类型,即该类型是由 C++ 语言

C++ Primer 笔记 第一章

C++ Primer 学习笔记 第一章 快速入门 1.1 main函数 系统通过调用main函数来执行程序,并通过main函数的返回值确定程序是否成功执行完毕.通常返回0值表明程序成功执行完毕: main函数返回值必须是int类型. 参数: main(int argc, char *argv[]) ; argc:参数个数: argv:参数(字符串形式,第一个参数是可执行文件的URL) 编译与执行 IDE(集成开发环境)将编译器与相关的构建与分析工具绑定在一起. 命令行编译与执行 调用GNU编译器

C++ Primer 学习笔记_1_快速入门

 C++快速入门 --这个月的第一篇博客,献给我最爱的C++程序设计语言! 一.编写简单的C++程序 [cpp] view plaincopyprint? //main函数是唯一一个被操作系统显式调用的函数. int main() { /* *该返回值作为状态指示器,需要返回给操作系统! *以echo $?命令可以查看该返回值 *通常非零返回值表示有错误出现,由操作系统定义 */ return 0; } //main函数是唯一一个被操作系统显式调用的函数. int main() { /* *

C++ Primer (一)

Google C++ Style Guide 书籍:C++ Primer,C++标准程序库,Effective C++,C++ concurrency in Action, Linux多线程服务端编程 读取数量不定的输入数据 while(std::cin >> value) while内返回其左侧运算符,即std:cin, 当istream作为条件时,效果是这个流的状态,有效输入(未遇到错误),条件为真,无效输入(读到文件尾,不是整数), 条件为假 键盘输入文件结束符,unix Ctrl+D

文件结束符的使用

问题描述:windows下 int main() { string str; while(cin>>str); cout<<"\n"<<"end"<<endl; } 控制台输入多个字符串后,输入文件结束符crtl-Z,并未使while循环结束,该如何跳出while循环? 解决方法: 方法1:回车 - ctrl-z - 回车 方法2:改代码,设置自己的文件结束符String a;while((cin>> a)