C++实现读写文本文件的几种方式

2023年2月11日 23:17 ry 476

文件以文本的ASCII码形式存储在计算机中,通过文件可以将数据持久化,C++中对文件操作要包含头文件fstream,里面包含3个类,分别是ofstrteam(文件写操作),ifstream(文件读操作),fstream(读写操作),如何记住呢,很容易ofstream是output file stream的缩写,表示输出流,这个是针对内存来说的,表示从内存输出到硬盘->当然就是写操作,ifstream就是input file stream的缩写,表示输入流,表示从硬盘输入到内存中,也就是->当然是读操作。我们先来看文件的写操作,代码如下

#include<iostream>

using namespace std;

#include<fstream>
void write()
{
    ofstream ofs;//实例化流对象
    ofs.open("file.txt",ios::out);//以写的方式打开文件
    ofs<<"88"<<endl;//写入数据
    ofs.close();//关闭

}

int main()
{
    write();
    return 0;
}

这里open里面的第一个参数注意下是你的文件路径。文件打开方式包含以下,如图所示自己可以根据情况灵活使用。接下来开始读取数据,同样的步骤,1:实例化流对象,2:以读/写的方式打开 3:写入或者读取数据 4:关闭文件。接下来我们来看第一种方式读取文件

#include<stdio.h>
#include<iostream>
#include<fstream>
using namespace std;
//读文件
int main()
{
    ifstream ifs;
    string result;
    ifs.open("C:/users/14499/desktop/1.txt",ios::in);
    while (getline(ifs,result))
    {
        /* code */
        cout<<result<<endl;
    }
    
    return 0;
}

使用全局的getline函数,接受2个参数,第一个是输入流对象,第二个是字符串,将输入流对象的每行数据输入到字符串中,有数据返回true,否则返回false。来看第二种方式

#include<stdio.h>
#include<iostream>
#include<fstream>
using namespace std;
//读文件
int main()
{
    ifstream ifs;
    char result[10] = {};
    ifs.open("C:/users/14499/desktop/1.txt",ios::in);
    while (ifs.getline(result,sizeof(result)))
    {
        /* code */
        cout<<result<<endl;
    }
    
    return 0;
}

这里使用文件的输入流对象的getline函数,将每行的数据的n个字符存到字符数组result中,由于一个字符的字节是1,所以sizeof(result)表示result的字符数。第三种读取方式如下所示

#include<stdio.h>
#include<iostream>
#include<fstream>
using namespace std;
//读文件
int main()
{
    ifstream ifs;
    char result[10] = {};
    ifs.open("C:/users/14499/desktop/1.txt",ios::in);
    while (ifs>>result)
    {
        /* code */
        cout<<result<<endl;
    }
   
    return 0;
}

这里直接把每行的数据放入result中,注意每行的最后一个一般是'\0',也就是遇到这个字符为假,循环结束。基本c++这3个读取文本文件方式用的最多,自己可以根据自己的情况进行选择

如果上述代码帮助您很多,可以打赏下以减少服务器的开支吗,万分感谢!

欢迎发表评论~

点击此处登录后即可评论


评论列表
暂时还没有任何评论哦...

赣ICP备2021001574号-1

赣公网安备 36092402000079号