I/O Stream

Posted xero10

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了I/O Stream相关的知识,希望对你有一定的参考价值。

文件输入流的变量是ifstream,输出流是ofstream,它们包含在头文件<fstream>中。stream变量必须通过open函数连接文件。一旦声明了输入/输出流并连接了文件,就可以用">>"/"<<"从文件中获取信息。在open函数后,要用fail函数检查文件是否成功打开

每一个input-file stream都有成员函数eof来判断是否已读到文件结尾,当程序试图访问文件结尾后的一个字符时才会返回true(即遇到end-of-file标记时)

#include<fstream>
...
ifstream in_stream;
ofstream out_stream;
int num1, num2;

in_stream.open("input.txt");
if(in_stream.fail()) 
	cout << "Fail openning input file\\n";
	exit(1);

in_stream >> num1 >> num2;

out_stream.open("out.txt");
if(out_stream.fail()) 
	cout << "Fail openning output file\\n";
	exit(1);

out_stream << "num1:" << num1;

in_stream.close();
out_stream.close();

当用open打开存在文件时,文件内容会被清空。如果不想清空原文件内容而在后面继续添加新内容,使用

out_stream.open("out.txt", ios:app);	// append to the file
stream可以作为函数的参数,但必须是call-by-reference的

void copy(ifstream& in, ofstream& out);
">>"符号既是一个行为,也会产生一个bool值,当stream成功获得数据时返回true,否则返回false。注意通过cin >> var;读入的变量,输入中的空格或'\\n'会留在输入流中,此时如果使用get,则将获得空格或'\\n'


get函数读入一个字符并存储在一个char型变量中。每一个输入流,无论是file stream还是cin都有get这个member function。对应的输出函数是put

每一个输入流都有成员函数putback,它将一个char型变量放回输入流中。这个char型变量不必是最后一个获得的字符,它可以是任意字符

char c;
do 
	cin.get(c);
	cout.put(c);
 while(c != ' ');
cin.putback(c);


以上是关于I/O Stream的主要内容,如果未能解决你的问题,请参考以下文章

Java I/O 中的“Stream”和“Buffer”到底是啥意思?

I/O的简介

Channels 是 IO Stream 上的包装器吗?

在c语言中 stream是啥函数?

Java 流(Stream)文件(File)和IO

Java 流(Stream)文件(File)和IO