文件IO读写操作

2023-10-28 09:20:57 浏览数 (2)

我们打开文件就要对文件进行读写 下面会列出一些C 文件读写的函数 写操作对应的有:<<、put、write 等,我们来看下他们分别都能实现什么样的写文件功能! 文件的写操作 <<可以写入文本文件 支持的类型:https://cplusplus.com/reference/ostream/ostream/operator<put可以单字符写入文本文件 write我们要写入的不一定是文本文件 也可能是二进制文件所以我们就不能用文本写入应该会write函数 它支持文本和二进制文本 参数1是要写入的地址 参数2是要写入的长度 文件的读操作 读文本类型/ASCII码类型的文件:>>、get、getline >>可以读入文本文件 >>支持的类型详见:http://www.cplusplus.com/referen ... eam/operator>>/

写文件

文本写文件

>> put(单字符写入) 进行写文本文件的操作,具体操作看代码演示

二进制写文件

write 可以向指定地址写入固定字节的数据 可以是二进制 也可以是文本文件

读文件

文本类读文件

可以用getline get >>进行读文本文件的操作,具体操作看代码演示

二进制文本类读文件

具体 read 函数的定义见:http://www.cplusplus.com/reference/istream/istream/read/ 也就是说他从指定的文件中读取数据,读取的数据可以是文本类型的也可以是二进制类型的,其实read也不管你想要读取什么东西,我只管读就是了,把读取到的内容放在第一个参数指针指向的内存中,具体读取的字节数就是靠第二个参数指定。 代码演示:

代码语言:javascript复制
#include <fstream>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    ofstream fs("hello.txt");
    ifstream is("hello.txt");
    int data = 12345;
    if (is.is_open()||fs.is_open())
    {
        cout << "file open success" << endl;
    }
    //写文件
    fs << 200<<endl;
    fs << 1.25 << endl;
    fs << "hello" << endl;
    //fs.write((const char*)&data, sizeof(data));
    char sz[] = "cvpotato博客";
    fs.write(sz, sizeof(sz));
    fs.close();
    //读文件
    /*int temp = 0;
    is >> temp;
    float  tempf = 0.0;
    is >> tempf;
    char tempsz[100] = { 0 };
    is >> tempsz;
    char tempbg[100] = { 0 };
    is >> tempbg;
    char c = is.get();*/
    char tempsz[100] = {0};
    is.getline(tempsz, 100);
    cout << tempsz << endl;

    memset(tempsz, 0, 100);
    is.getline(tempsz, 100);
    cout << tempsz << endl;

    memset(tempsz, 0, 100);
    is.getline(tempsz, 100);
    cout << tempsz << endl;

    memset(tempsz, 0, 100);
    is.getline(tempsz, 100);
    cout << tempsz << endl;
    is.close();
}

0 人点赞