日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【黑马程序员 C++教程从0到1入门编程】【笔记6】C++核心编程(文件操作)

發布時間:2025/3/20 c/c++ 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【黑马程序员 C++教程从0到1入门编程】【笔记6】C++核心编程(文件操作) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 5 文件操作
      • 5.1文本文件
        • 5.1.1寫文件
        • 5.1.2讀文件
      • 5.2 二進制文件
        • 5.2.1 寫文件(用二進制方式寫時最好別用c++的string)
        • 5.2.2 讀文件

https://www.bilibili.com/video/BV1et411b73Z?p=143

5 文件操作

程序運行時產生的數據都屬于臨時數據,程序一旦運行結束都會被釋放,所以要把重要的數據保存下來

通過文件可以將數據持久化

C++中對文件操作需要包含頭文件 < fstream >

文件類型分為兩種:

  • 文本文件 - 文件以文本的ASCII碼形式存儲在計算機中
  • 二進制文件 - 文件以文本的二進制形式存儲在計算機中,用戶一般不能直接讀懂它們
  • 操作文件的三大類:

  • ofstream:寫操作(output file stream)
  • 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二進制方式

    注意: 文件打開方式可以配合使用,利用|操作符

    例如:用二進制方式寫文件 ios::binary | ios:: out

    示例:

    //#include <iostream> #include <fstream> using namespace std;void test01() {ofstream ofs;ofs.open("test.txt", ios::out);ofs << "姓名:張三" << endl;ofs << "性別:男" << endl;ofs << "年齡:18" << endl;ofs.close(); }int main() {test01();system("pause");return 0; }


    總結:

    • 文件操作必須包含頭文件 fstream
    • 讀文件可以利用 ofstream ,或者fstream類
    • 打開文件時候需要指定操作文件的路徑,以及打開方式
    • 利用<<可以向文件中寫數據
    • 操作完畢,要關閉文件

    5.1.2讀文件

    讀文件與寫文件步驟相似,但是讀取方式相對于比較多

    讀文件步驟如下:

  • 包含頭文件

    #include <fstream>

  • 創建流對象

    ifstream ifs;

  • 打開文件并判斷文件是否打開成功

    ifs.open(“文件路徑”,打開方式);

  • 讀數據

    四種方式讀取

  • 關閉文件

    ifs.close();

  • 示例:

    #include <iostream> using namespace std; #include <fstream> #include <string>void test01() {ifstream ifs; //創建操作流對象ifs.open("test.txt", ios::in); //設置操作文件路徑和操作文件方式if (!ifs.is_open()) //判斷文件是否打開成功{cout << "文件打開失敗" << endl;return;}//第一種方式//char buf[1024] = { 0 };//while (ifs >> buf) //讀到換行符,讀到數據返回true,沒讀到返回false//{// cout << buf << endl;//}//第二種(通過ifstream::getline函數)//char buf[1024] = { 0 };//while (ifs.getline(buf,sizeof(buf)))//{// cout << buf << endl;//}//第三種string buf; while (getline(ifs, buf)) //注意getline第二個參數必須要是std::string類型{cout << buf << endl;}//第四種(不推薦,一個字符一個字符讀,太慢了【真實性有待確認!】)/*char c;while ((c = ifs.get()) != EOF){cout << c;}ifs.close();*/}int main() {test01();system("pause");return 0; }

    運行結果:

    姓名:張三 性別:男 年齡:18

    總結:

    • 讀文件可以利用 ifstream ,或者fstream類
    • 利用is_open函數可以判斷文件是否打開成功
    • close 關閉文件

    5.2 二進制文件

    以二進制的方式對文件進行讀寫操作

    打開方式要指定為 ios::binary

    5.2.1 寫文件(用二進制方式寫時最好別用c++的string)

    二進制方式寫文件主要利用流對象調用成員函數write

    函數原型 :ostream& write(const char * buffer,int len);

    參數解釋:字符指針buffer指向內存中一段存儲空間。len是讀寫的字節數

    示例:

    #include <fstream> #include <string> using namespace std;class Person { public:char m_Name[64]; //二進制寫最好用c語言的字符數組,別用c++的stringint m_Age; };//二進制文件 寫文件 void test01() {//1、包含頭文件//2、創建輸出流對象ofstream ofs("person.txt", ios::out | ios::binary);//3、打開文件//ofs.open("person.txt", ios::out | ios::binary);Person p = { "張三" , 18 };//4、寫文件ofs.write((const char*)&p, sizeof(p)); //不是復雜,是函數數據類型要求,所以要把指針強制轉換一下//5、關閉文件ofs.close(); }int main() {test01();system("pause");return 0; }


    總結:

    • 文件輸出流對象 可以通過write函數,以二進制方式寫數據

    5.2.2 讀文件

    二進制方式讀文件主要利用流對象調用成員函數read

    函數原型:istream& read(char *buffer,int len);

    參數解釋:字符指針buffer指向內存中一段存儲空間。len是讀寫的字節數

    示例:

    #include <fstream> #include <string> using namespace std; #include <iostream>class Person { public:char m_Name[64];int m_Age; };void test01() {ifstream ifs("person.txt", ios::in | ios::binary);if (!ifs.is_open()){cout << "文件打開失敗" << endl;}Person p;ifs.read((char*)&p, sizeof(p)); //對象p整體寫入,再整體讀取cout << "姓名: " << p.m_Name << " 年齡: " << p.m_Age << endl; }int main() {test01();system("pause");return 0; }

    運行結果:

    姓名: 張三 年齡: 18
    • 文件輸入流對象 可以通過read函數,以二進制方式讀數據

    總結

    以上是生活随笔為你收集整理的【黑马程序员 C++教程从0到1入门编程】【笔记6】C++核心编程(文件操作)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日本欧美www | 日日躁夜夜躁白天躁晚上躁91 | 国产精品伦理一区 | 苍井空浴缸大战猛男120分钟 | 日本xxxx在线观看 | 91久久久久久久久久久久 | 成人片网址 | 成人v片| 影音先锋在线视频 | 日本一区二区免费在线 | 亚洲高清中文字幕 | av在线第一页 | 东京热无码av一区二区 | 午夜视频在线免费看 | 久久久观看 | 国产一区二区三区精品愉拍 | 中字幕视频在线永久在线观看免费 | 亚洲一区二区自偷自拍 | 亚州av成人| 欧美亚洲在线播放 | 好吊视频一区二区 | 爱操影院 | 久久e热 | 久久久电影 | 色哟哟中文字幕 | 亚洲字幕av一区二区三区四区 | 在线看的免费网站 | 国产精品理论在线观看 | 91污片| 一区二区三区免费观看 | 中文在线第一页 | 欧美视频xxxx | 嫩草视频在线免费观看 | 99riav国产在线观看 | 性久久 | 国产床上视频 | 欧美99久久精品乱码影视 | 欧美三级影院 | 亚洲视频123| 肉色欧美久久久久久久免费看 | av电影中文字幕 | 日本少妇高潮抽搐 | 天天弄天天干 | 国产人妖在线播放 | 狼人伊人干 | 亚洲第一区在线播放 | 婷婷在线视频 | 波多野结衣视频网站 | 日韩视频一区二区在线观看 | 亚洲免费视频观看 | 国产成人黄色 | 婷婷综合网| 99热3| 欧洲亚洲综合 | 中文字幕人妻互换av久久 | 亚洲男人天堂网 | 视频黄色免费 | 黄色av网站免费在线观看 | 中文字幕一二 | 亚洲丝袜色图 | 天天躁日日躁狠狠躁av | 成人天堂噜噜噜 | 成人爱爱网站 | 国产精品交换 | 国产真实的和子乱拍在线观看 | 夜夜艹| 国产伦精品一区二区三区视频1 | 精彩久久 | 熟妇熟女乱妇乱女网站 | 日韩福利一区 | 一区二区日本 | 动漫av在线免费观看 | 国产成人一区二区三区影院在线 | 日本国产一区二区三区 | 日本三级韩国三级三级a级中文 | 双性娇喘浑圆奶水h男男漫画 | 日本人妖japanesexxx | 国产夫妻自拍av | www.黄色av | 日本v片| 国产福利二区 | 国产高清无密码一区二区三区 | www.美色吧.com | 亚洲综合少妇 | 白俄罗斯毛片 | 久草新免费 | 99mav| 波多野结衣在线免费观看视频 | 一区二区视频在线免费观看 | 成人欧美一区二区三区黑人动态图 | 国产96在线 | 国产网站视频 | 精品一区二区视频 | 一本色道久久综合亚洲精品小说 | 久久爱综合 | 草莓视频18免费观看 | 日韩综合网站 | 超碰操| 能看av的网站 |