C++文件操作

1、头文件介绍

#include //标准输入输出流
#include //派生自iostream,包括ifstream和ofstream

using namespace std;//都在名称空间std中,别忘了加上

2、打开文件

const char* fileName="1.txt";//要打开的文件名,可以使路径名,默认情况下是所建工程下

fstream类派生了两个类ifstream\ofstream

fstream f(fileName,参数二);

参数二有多种形式,这里只看主要用的几种:

ios_base::in//打开文件用于读

ios_base::out//打开文件用于写

ios_base::app//打开文件,用于追加(不覆盖原有文件,默认情况是覆盖)

ios_base::binary//以二进制方式打开文件,默认情况下是文本文件方式

例:

fstream i(fileName,ios_base::in|ios_base::out);//打开文件用于读写(既可读也可写)

ifstream in(fileName,ios_base::binary|ios_base::in);//以二进制方式打开文件用于读

ofstream out(fileName,ios_base::out|ios_base::app);//打开文件用于追加

3、由于派生自iostream,很多其他的方法和iostream一样

比如:seekg()\eof()\clear()……

4、一些文件操作的例子

读写二进制文件

#include "stdafx.h"
#include 
#include 
#include 
using namespace std;
struct plant
{
	char name[20];
	int age;
	char num[10];
};
int _tmain(int argc, _TCHAR* argv[])
{
           plant p;
	p.name[20]=(char)"yao";
	p.age=21;
	p.num[10]=(char)"0950420011";
	ofstream pf("data.dat",ios_base::out|ios_base::app|ios_base::binary);
	pf.write((char*)&p,sizeof(p));
	pf.close();
	ifstream in("data.dat",ios_base::in|ios_base::binary);
	plant p1;
	in.read((char*)&p1,sizeof(p1));
	in.close();
	cout<

循环读取指定文件的指定行

 

#include "stdafx.h"
#include 
#include 
#include 
#include 
#include 
//#include "iomanip.h"
//const char* file="data.dat"
using namespace std;
const int MAX=1024;
const int M=40;
//#define 
//////======自定义函数判断输入是否为数字=======///////////
bool IsDigital(const string &str)
{
	//int flag=0;//字符串中数字的个数
	if(str=="")
		return false;
	const char* p=str.c_str();
	int length=str.length();
	for(int i=0;i='9'))
			return false;
	}
    return true;
}


	
	

int _tmain(int argc, _TCHAR* argv[])
{
       char c;	
       do
       {
	fstream f;
	cout<<"请输入文件名称(注:先把你要打开的文件复制到本程序下,如:'file.txt')"<
	do
	{
		string str;
		if(flag)
		{
			f.clear();
			cout<<"输入文件不存在,请重新输入:"<>str;
		const char* file=str.c_str();
		//string text="";
		f.open(file,ios_base::in|ios_base::out|ios_base::binary);
		flag++;
	}
	while(!f.is_open());
	int lineCount=1;//记录当前文件的总行数
	int SumByte=0;//记录文件的总大小
	while(!f.eof())
	{
		char c;
		c=f.get();
		if(c=='\n')
			lineCount++;
		SumByte++;
	}
	f.clear();
	float kb;
	kb=(float)SumByte/1024;
	cout<<"当前文件的字节数是:"<>str_line;
	while(!IsDigital(str_line))
	{
		cout<<"输入格式不正确,请重新输入:\n";
		cin>>str_line;
	}
	line=atoi(str_line.c_str());

	cout<<"当前的line值 :"<lineCount))
	{
		cout<<"输入数据有误(1--"<>line;
	}

	cout<<"你选择了输出第"<>c;
}
while(c=='y');
   // char p;
	//cin>>p;
	return 0;
}

复制文件

#include "stdafx.h"
#include 
#include 
using namespace std;
const char* file1="1.txt";
const char* file2="2.txt";
//把文件1的内容写到文件2的末尾
int _tmain(int argc, _TCHAR* argv[])
{
    ifstream in(file1);//默认方式打开文件1进行读
    ofstream out(file2,ios_base::out|ios_base::app);//打开文件2进行写入(app为追加)
    out<


C++文件操作就介绍到这里

你可能感兴趣的:(C/C++基础)