C++对文本文件读写方法

C++对文本文件读写方法,第1张

1、创建流对象,打开文件

    void open( class="superseo">const char *filename );

    void open( const char *filename, openmode mode );

    filename 文件名

    mode:打开模式

        ios::app 添加输出

        ios::ate 当已打开时寻找到EOF

        ios::binary 以二进制模式打开文件

        ios::in 为读取打开文件

        ios::out 为写入打开文件

        ios::trunc 覆盖存在的文件

       

    strace ./a.out

    ifstream 类的默认mode

        以只读方式ios::in打开文件,文件不存在则打开失败 r

    ofstream 类的默认mode

        以只写方式ios::out打开文件,文件不存在则创建,存在则清空    w

    fstream 类的默认mode

        以读写方式ios::in|ios::out打开文件,文件不存在则失败       r+

    注意:这些打开模式单独使用和混合使用时功能上有删减,不是简单的相加,具体混合使用后的功能需要通过strace追踪底层调用open函数时对应的flag标志位

   

    注意:可以使用创建类时初始化进行打开文件,效果等同于调用open成员函数,参数与open一样

        ifstream ifs.open("test.txt");

        ifstream ifs("test.txt");

2、判断文件是否打开成功

 bool good();

 功能:判断上一次流对象的 *** 作是否成功,可以用于判断文件是否打开成功

 返回值:

    true 成功

    false 失败

 bool fail();

 功能:判断上一次流对象的 *** 作是否失败,可以用于判断文件是否打开成功

 返回值:

    true    失败

    false   成功

3、流对象 << 写操作   流对象    >>  读 *** 作

    ofs << str << endl;

    ifs >> str;

4、关闭文件

    void close();

注意:在读写类对象时,由于绝大多数成员都是private属性,因此不能在类外直接进行读写;但由于ostream/ifstream类是ofstream/ifstream的父类,因此重载实现<< 和 >> 运算符函数既可以用于输入输出对象,也可以用于类对象的文本文件的读写

读:

#include 
#include 
using namespace std;

int main(int argc,const char* argv[])
{
	ifstream ifs("test.txt");
	if(ifs.good())
		cout << "文件打开成功" << endl;
	else
		cout << "文件打开失败" << endl;
	
	string str;
	double f;
	ifs >> str >> f;
	cout << str << "---" << f << endl;
	ifs.close();
}

写:

#include 
#include 
using namespace std;

int main(int argc,const char* argv[])
{
	ofstream ofs("test.txt");
	if(ofs.good())
		cout << "文件打开成功" << endl;
	else
		cout << "文件打开失败" << endl;
												
	ofs << "你好" << endl;
	ofs.close();
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/996611.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存