C++ 文件的基本读写

[C++] 文件的基本读写

 C++的文件读写与其标准输入输出流(cin和cout)操作基本一致,文件的操作是通过文件流实现的,文件流本身不是文件,而只是以文件为输入输出对象的流。若要对磁盘文件输入输出,就必须通过文件流来实现。

 在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。

 而fstream类又有两个子类ifstream和ofstream,ifstream是从内存到硬盘,ifstream是从硬盘到内存.

fstream类的两个重要函数open()函数close()函数

open()函数

		void open(const char* filename,int mode,int access);         //打开文件

  参数说明

   filename:  要打开的文件名,若要打开指定文件只需要在文件名前面加上路径,不加默认为当前目录下
   mode:   打开文件的操作方式
   access:  打开文件的属性
  
  常用打开方式

  ios::app:   以追加的方式打开文件
  ios::ate:   文件打开后定位到文件尾,ios:app就包含有此属性
  ios::binary: 以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文
  ios::in:   文件以输入方式打开(文件数据输入到内存)
  ios::out:  文件以输出方式打开(内存数据输出到文件)

close()函数

	对象名.close( );			//关闭文件

   在对已打开的磁盘文件的读写操作完成后,应关闭该文件。关闭文件用成员函数close。所谓关闭,实际上是解除该磁盘文件与文件流的关联,原来设置的工作方式也失效,这样,就不能再通过文件流对该文件进行输入或输出。

    用插入器(<<)向文件输出;
    用析取器(>>)从文件输入。

例子1 往文件里写入内容


#include<iostream>
#include<fstream>  //文件流的头文件 
using namespace std;
int main()
{
	ofstream outfile;	                       //定义ofstream类(输出文件流类)对象outfile
	outfile.open("D:\\1\\c++.txt",ios::app);   //打开指定目录文件 使文件流与c++.txt文件建立关联 打开方式为追加
	outfile<<"hello world!";		          //将"hello world!"写入文件中 
	outfile.close();	                     //关闭文件 使文件流与c++.txt文件断开关联		
	return 0}

例子2 往读取文件内容

#include<iostream>
#include<fstream>  //文件流的头文件 
using namespace std;
int main()
{
	char a[100];
	ifstream infile;				//定义ifstream类(输入文件流类)对象outfile
	infile.open("D:\\1\\c++.txt");//打开文件 使文件流与c++.txt文件建立关联
	infile>>a;						//将文件内容赋给字符数组a  若读取到空格,赋值会终止
	infile.close();					//关闭文件 使文件流与c++.txt文件断开关联
	cout<<a;						//输出文件内容 
}

 在c++中使用ifstream读文件的时候会以空格为分隔符,后面的内容就不读取了。这时候可以调用getline函数来读取制定大小的内容。具体代码如下:

例子2plus 往读取文件内容(遇到空格情况)

#include<iostream>
#include<fstream>  //文件流的头文件 
using namespace std;
int main()
{
	char a;
	ifstream infile;	//定义ifstream类(输入文件流类)对象outfile
	infile.open("D:\\1\\c++.txt");//打开文件 使文件流与c++.txt文件建立关联
	while(!infile.eof())//跳过空白字符 
    { 
        infile.get(a); //依次获取文件中每个字符 并输出 
        cout<<a; 
    }
	infile.close();		//关闭文件 使文件流与c++.txt文件断开关联

}

欢迎大家交流补充~

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值