博客
关于我
C++研发 核心篇 第五讲 【文件操作】
阅读量:67 次
发布时间:2019-02-25

本文共 2564 字,大约阅读时间需要 8 分钟。

5 ????

??????????????????????????????????????????????????????????????????C++????????????? <fstream>?

???????????

  • ???????????ASCII???????????
  • ??????????????????????????????????????
  • ????????

    ????????????

  • ofstream??????????
  • ifstream??????????
  • fstream??????????
  • 5.1 ??????

    5.1.1 ???

    ?????????

  • ??????#include <fstream>?
  • ??????ofstream ofs;?
  • ?????ofs.open("????", ????);?
  • ?????ofs << "?????";?
  • ?????ofs.close();?
  • ???????????????????????

    ???? ??
    ios::in ?????
    ios::out ?????
    ios::ate ?????????
    ios::app ???????
    ios::trunc ?????????????????
    ios::binary ???????????

    ???

    #include 
    #include
    void test01() { ofstream ofs("test.txt", ios::out); ofs << "?????" << endl; ofs << "????" << endl; ofs << "???18" << endl; ofs.close();}int main() { test01(); system("pause"); return 0;}

    5.1.2 ???

    ?????????

  • ??????#include <fstream>?
  • ??????ifstream ifs;?
  • ?????ifs.open("????", ????);?
  • ??????????????????
  • ?????ifs.close();?
  • ???

    #include 
    #include
    void test01() { ifstream ifs("test.txt", ios::in); if (!ifs.is_open()) { cout << "??????" << endl; return; } // ???????????? char buf[1024] = {0}; while (ifs >> buf) { cout << buf << endl; } // ???? char buf[1024] = {0}; while (ifs.getline(buf, sizeof(buf))) { cout << buf << endl; } // ????????? string buf; while (getline(ifs, buf)) { cout << buf << endl; } char c; while ((c = ifs.get()) != EOF) { cout << c; } ifs.close();}int main() { test01(); system("pause"); return 0;}

    5.2 ???????

    5.2.1 ???

    ??????????????????write???????????

    ostream& write(const char* buffer, int len);

    ???

    #include 
    #include
    struct Person { char m_Name[64]; int m_Age;};void test01() { ofstream ofs("person.txt", ios::out | ios::binary); Person p = {"??", 18}; ofs.write((const char*)&p, sizeof(p)); ofs.close();}int main() { test01(); system("pause"); return 0;}

    5.2.2 ???

    ??????????????????read???????????

    istream& read(char* buffer, int len);

    ???

    #include 
    #include
    struct Person { char m_Name[64]; int m_Age;};void test01() { ifstream ifs("person.txt", ios::in | ios::binary); if (!ifs.is_open()) { cout << "??????" << endl; return; } Person p; ifs.read((char*)&p, sizeof(p)); cout << "??? " << p.m_Name << " ??? " << p.m_Age << endl; ifs.close();}int main() { test01(); system("pause"); return 0;}

    ?????????????????????????????????

    转载地址:http://bke.baihongyu.com/

    你可能感兴趣的文章
    OpenAll:Android打开组件新姿势【仅供用于学习了解ButterKnife框架基本原理】
    查看>>
    OpenASR 项目使用教程
    查看>>
    Openbox-桌面图标设置
    查看>>
    opencart出现no such file or dictionary
    查看>>
    OpenCV 3.1 imwrite()函数写入异常问题解决方法
    查看>>
    OpenCV 4.1.0版drawContours
    查看>>
    Opencv cv2.putText 函数详解
    查看>>
    opencv glob 内存溢出异常
    查看>>
    opencv Hog Demo
    查看>>
    opencv Hog学习总结
    查看>>
    opencv Mat push_back
    查看>>
    opencv putText中文乱码
    查看>>
    OpenCV Python围绕特定点将图像旋转X度
    查看>>
    opencv resize
    查看>>
    Opencv Sift和Surf特征实现图像无缝拼接生成全景图像
    查看>>
    opencv SVM分类Demo
    查看>>
    OpenCV VideoCapture.get()参数详解
    查看>>