1.文件流知识

在这里插入图片描述

摘自c++中文网

  • ifstream是输入文件流(就是通过它定义的对象获取文件中的内容)
  • ofstream是输出文件流(将内容写入文件)
    注意:要使用输入输出文件流要包含头文件#include<fstream>

2.文件的写入

  • 首先要用ofstream定义一个输入对象ofstream outf;

这里的outf可以自定义

  • 接着用outf.open(文件路径)打开文件

注意: (1)这里的路径如果不写的话,文件会自动存放到工程所在目录
(2)文件的路径中的 / 与c++中转义字符冲突,所以要改为双斜杠

  • outf<<"666";将“666”写入文件(举例)
  • outf.close()关闭文件
    下面看代码演示
int main()     //注意#include<fstream>头文件
{
	ofstream outf;    //用ofstream类定义输入对象
	outf.open("D://test01.txt");  //文件绝对路径(注意双斜杠取消转义)
	outf<<"I am DB"<<endl;    
	outf<<"I like learning"<<endl;   //写入内容
	outf.close();
}

结果展示:
在D盘下有了test01.txt文件
扩展:
(1)在文件打开时可以添加不同的打开方式(比如:打开文件时希望在原有内容上续写就要加上ios::app,如果不加默认打开方式会将文件原来的内容覆盖
在这里插入图片描述

摘自c语言中文网

  • ios::app的使用
int main()
{
	string s;
	ofstream outf;    //用ofstream类定义输入对象
	outf.open("D://test01.txt");  //文件绝对路径(注意双斜杠取消转义)
	outf<<"I am DB"<<endl;    
	outf<<"I like learning"<<endl;   //写入内容
	outf.close();

    ifstream inf;     //用ifstream类定义输入对象
	outf.open("D://test01.txt",ios::app);  //再次用ios::app的方式打开txt文件
	outf<<"这是一行追加内容!"<<endl;
	inf.open("D://test01.txt");
	while(getline(inf,s)) //获取一行内容
	{
		cout<<s<<endl;
	}
	inf.close();
	outf.close();
}

结果
在这里插入图片描述

3.文件内容的输出

内容和文件写入类似
看代码实例
1 .一行行输出文件内容

int main() 
{
	string s;
	ofstream outf;    //用ofstream类定义输入对象
	outf.open("D://test01.txt");  //文件绝对路径(注意双斜杠取消转义)
	outf<<"I am DB"<<endl;    
	outf<<"I like learning"<<endl;   //写入内容
	
	ifstream inf;     //用ifstream类定义输入对象
	inf.open("d://test01.txt");  //注意输出流要先打开文件!!!
	while(getline(inf,s)) //获取一行内容
	{
		cout<<s<<endl;
	}
	inf.close();
	outf.close();
}

结果
在这里插入图片描述

getline的用法参考:c语言中文网

2 .以空格和换行为分界逐个输出

int main()
{
   string filename="D://test03.txt";
   ofstream fout;
   fout.open(filename);   //可以用字符串赋值为文件路径
   fout<<"This is the second time"<<endl;
   fout<<"I will be the first"<<endl;
   //以下为文件内容输出部分
   ifstream fin;
   fin.open(filename);  //注意读取文件时,要先打开文件
   char buf[1024]={0};  //创建一个数组用于临时存放从文件获取的内容
   while(fin>>buf)      
   	cout<<buf<<endl;   //在while循环中逐个输出
   fout.close();
   fin.close();
   system("pause");
   return 0;
}

结果:
在这里插入图片描述
有关更多对txt文件的操作会在之后更新!!!
感谢支持!!!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐