C++ 语法文件

程序运行时产生的数据都属于临时数据,程序结束就会被释放。

通过文件可以可以将数据持久化

c++中对文件操作需要包含头文件fstream

文件的类型分为两种

1.文本文件 文件以文本的ASCII码形式存储在计算机中

2.二进制文件 稳重以文本的二进制形式存储在计算机中 用户一般不能直接读懂

操作文件的三大类

ofstream

ifstream

fstream

写文件

1.包含头文件

#include

2.创建对象

ofstream ofs

3.打开文件

ofs.open("path","打开方式")

4.写数据

 ofs<<"写入数据"

5.关闭数据

ofs.close()

C++ 语法文件_第1张图片

#include 
#include 
using namespace std;
void test65() {
    ofstream ofs;
    ofs.open("/Users/king/Documents/cpp/cpplearn/cpplearn/test.txt",ios::out);
    ofs << "12345677" << endl;
    ofs.close();
    
}
int main(int argc, const char * argv[]) {
    // insert code here...
    std::cout << "Hello, World!\n";
    test65();
    std::cout << "end!\n";
    return 0;
}

文件操作必须包含fstream

读文件可以利用ofstream  或者fstream类

打开文件时候需要指定操作文件的路径 以及打开方式

利用<<可与你向文件中写数据

操作完毕需要关闭文件

读文件

1.包含头文件

#include

2.创建对象

ofstream ifs

3.打开文件

ifs.open("path","打开方式")

4.读数据

四种读取方式

5.关闭文件

ifs.close();

#include 
#include 
#include 
using namespace std;
void test65() {
    ofstream ofs;
    ofs.open("/Users/Documents/cpp/cpplearn/cpplearn/test.txt",ios::out);
    ofs << "12345677" << endl;
    ofs.close();
    
}
void test66() {
    ifstream ifs;
    ifs.open("/Users/cpp/cpplearn/cpplearn/test.txt",ios::in);
    if (!ifs.is_open()) {
        cout << "文件打开失败" << endl;
        return;
    }

    char buf[1024] = {0};
    // 方式1
//    while (ifs >> buf) {
//        cout << buf << endl;
//    }
    //2.
//    while (ifs.getline(buf, sizeof(buf))) {
//        cout << buf << endl;
//    }
    //3.
//    string buffer;
//    while (getline(ifs, buffer)) {
//        cout << buffer << endl;
//    }
    //4. 效率低下
    char c;
    while ( (c = ifs.get()) != EOF ) {
        cout << c << endl;
    }
    ifs.close();
    
}
int main(int argc, const char * argv[]) {
    // insert code here...
    std::cout << "Hello, World!\n";
    test65();
    test66();
    std::cout << "end!\n";
    return 0;
}

二进制读写

void test67() {
    ofstream ofs;
    ofs.open("/Users/xxx/Documents/cpp/cpplearn/cpplearn/test.txt",ios::out | ios::binary);
    Student1 s = {"王武",18};
    ofs.write((const char*)&s, sizeof(Student1));
    ofs.close();
}

void test69() {
    ifstream ifs;
    ifs.open("/Users/xxx/Documents/cpp/cpplearn/cpplearn/test.txt",ios::in | ios::binary);
    if (!ifs.is_open()) {
        std::cout << "is_open, failed!\n";
        return;
    }
    Student1 s;
    ifs.read((char *)&s, sizeof(Student1));
    cout << "name=" << s.m_name << "age = " << s.m_age << endl;
    ifs.close();
    
}

你可能感兴趣的:(c++,开发语言)