c++文件操做简单例子

下面的 C++ 程序以读写模式打开一个文件。在向文件 afile.dat 写入用户输入的信息以后,程序从文件读取信息,并将其输出到屏幕上:ios

#include <fstream>
#include <iostream>
using namespace std;

int main ()
{

	char data[100];

	// 以写模式打开文件
	ofstream outfile;
	outfile.open("afile.dat");

	cout << "Writing to the file" << endl;
	cout << "Enter your name: "; 
	cin.getline(data, 100);

	// 向文件写入用户输入的数据
	outfile << data << endl;

	cout << "Enter your age: "; 
	cin >> data;
	cin.ignore();

	// 再次向文件写入用户输入的数据
	outfile << data << endl;

	// 关闭打开的文件
	outfile.close();

	// 以读模式打开文件
	ifstream infile; 
	infile.open("afile.dat"); 

	cout << "Reading from the file" << endl; 
	infile >> data; 

	// 在屏幕上写入数据
	cout << data << endl;

	// 再次从文件读取数据,并显示它
	infile >> data; 
	cout << data << endl; 

	// 关闭打开的文件
	infile.close();

	return 0;
}

当上面的代码被编译和执行时,它会产生下列输入和输出:函数

$./a.out
Writing to the file
Enter your name: Zara
Enter your age: 9
Reading from the file
Zara
9

上面的实例中使用了 cin 对象的附加函数,好比 getline()函数从外部读取一行,ignore() 函数会忽略掉以前读语句留下的多余字符。spa

文件位置指针

istream 和 ostream 都提供了用于从新定位文件位置指针的成员函数。这些成员函数包括关于 istream 的 seekg("seek get")和关于 ostream 的 seekp("seek put")。指针

seekg 和 seekp 的参数一般是一个长整型。第二个参数能够用于指定查找方向。查找方向能够是 ios::beg(默认的,从流的开头开始定位),也能够是 ios::cur(从流的当前位置开始定位),也能够是 ios::end(从流的末尾开始定位)。code

文件位置指针是一个整数值,指定了从文件的起始位置到指针所在位置的字节数。下面是关于定位 "get" 文件位置指针的实例:对象

// 定位到 fileObject 的第 n 个字节(假设是 ios::beg)
fileObject.seekg( n );
 
// 把文件的读指针从 fileObject 当前位置向后移 n 个字节
fileObject.seekg( n, ios::cur );
 
// 把文件的读指针从 fileObject 末尾往回移 n 个字节
fileObject.seekg( n, ios::end );
 
// 定位到 fileObject 的末尾
fileObject.seekg( 0, ios::end );
相关文章
相关标签/搜索