C/C++的txt文件基本操作

参考链接:https://blog.csdn.net/freeking101/article/details/60959624

文章目录

  • C++
    • 认识stream
    • 插入器
    • 析取器
    • stream头文件
  • 正片开始
    • 如何读文件
      • 1.打开文件
      • 2.关闭文件
      • 3.读文件
    • 如何写文件
      • 1.创建文件
      • 2.写入文件
  • 其他
    • 判断EOF
    • exit

C++

认识stream

#include//io stream
#include //f  stream
#include //i  stream
#include //o  stream
//……

通过上面的4个头文件,大家不难发现,C++有个stream类,所有的I/O都以stream为基础

插入器

cout<<"Hello";//<<

向流输出数据
<<为插入器
平时我们想要输出一个东西时,会有一个自带的输出流,即cout

cout=c+out//c++输出流

那么我们cout<<"Hello"就会将Hello输出到标准输出流

析取器

int x;
cin>>x;//>>

流中输入数据

>>为析取器

析取器一般指的是键盘,所以上面代码中,表示从键盘读取一个int类型的数字
理解了插入器和析取器,下面来看看stream的几个头文件

stream头文件

ofstream:输出流(写)
ifstream:输入流(读)
fstream:文件操作流(可读写)
今天讲的是文件操作,所以fstream为主角(主角光环登场!)
C/C++的txt文件基本操作_第1张图片

正片开始

如何读文件

1.打开文件

fstream这个头文件最拿手的就是读写操作辣~
打开一个文件,对它进行任何操作,实际就是对该文件所做的操作
温馨提示:

ios::out 文件以输出()方式打开 
ios::in    文件以输入()方式打开
ios::ate 初始位置:文件尾
ios::app 所有输出附加在文件末尾
ios::trunc 如果文件已存在则先删除该文件
ios::binary 二进制方式

这六种东西可以根据自己的需要自行挑选,可以用|把以上属性连接起来
如:ios::in|ios::app
打开方式
第一种
……我忘了,副主角好像是ifstream和ofstream
因为它们是读写操作

#include//这个要加,因为ifstream和ofstream在这里
#include//主角
using namespace std;
int main()
{
	ifstream infile;
	infile.open("D:\\安安.txt",ios::out|ios::app|ios::binary);
	return 0;
}

第二种
只有一个打开方式未免低调了一点

#include
#include
using namespace std;
int main()
{
	ifstream file("D:\\安安.txt",ios::out|ios::app|ios::binary);
	return 0;
}

还有更多的打开方式,这里不再做详细解释

2.关闭文件

没啥好说的
当文件读写操作完成之后,我们必须将文件关闭以使文件重新变为可访问的。关闭文件需要调用成员函数close(),它负责将缓存中的数据排放出来并关闭文件。
不关闭文件会……丢失!

ofstream infile;
infile.close();

3.读文件

这里我们已经知道了如何打开文件
辣么怎么读文件呢
新副主角:assert
这是一个判断路径是否有错的文件,一蛋你路径写错了,辣么它就会……报错!
如果路径写的对,继续往下运行
具体用法如下

assert(infile.is_open());

一句话,就可以判断路径是否有错
判断路径是否有错知道了,辣么怎么读文件呢,你扯了半天

(800米的大刀早已饥渴)

while循环即可解决
行行读取(string)

#include
#include
#include 
#include 
#include//我表示今天这个副主角我不欢迎,但要用的还要用
using namespace std;
int main()
{
	ifstream infile;
	infile.open("D:\\安安.txt",ios::out|ios::app|ios::binary);//打开文件
	assert(infile.is_open());//检测路径是否有错
	string s;//字符串为一行
	while(getline(infile,s))//get每一行
	{
		cout<<s<<"\n";//输出后就换行
	}
	return 0;
}

辣么我们的读文件这块部分就告一段落

如何写文件

1.创建文件

无论是读还是写文件,都要打开或创建文件
那么刚说了ifstream是输入流,它登场!

ifstream outfile;
outfile.open("D:\\txt.txt",ios::in||ios::app||ios::binary);//写入文件就要ios::in

2.写入文件

这里有个容易混淆的地方,即
我们说<<是插入器,>>是析取器,那么我们要写入的时候要用到哪个呢
这里给大家一个思考


Round 1
甲:我觉得应该用>>,因为你要写入一个文件嘛,肯定是要用键盘写入啊
甲说服率:53%
乙:我不赞同,因为终究是要把你写入的东西存到文件里的,这个步骤你还需要动键盘?
甲乙各占50%


Round 2
甲:存入到文件嘛,你是不是要把每一行存入到这个文件,我……(好像理亏)
甲说服率:21%
乙:这个时间根本不用动键盘,只不过是系统帮你存到这里去喽
乙说服率:100%


赢主:乙
所以使用插入器是正确的
ifstream是写,所以

ifstream outfile;
string write;
outfile<<write;
outfile.close();//关闭文件流

其他

判断EOF

EOF表示是否到达文件尾,是则返回非0直,否返回0值
具体用法

if(in.eof())ShowMessage("停止!");

exit

exit表示终止程序,同时关闭缓冲区剩余的数据输出并关闭所有已经打开的文件
参数:传参0或非0
参数含义
传0表示程序正常停止
不传0表示程序异常停止

你可能感兴趣的:(编程语言合集,#,C++,#,C,ios,c++,c语言)