大作业-点灯机器人-记录心得(1)-----基础铺垫-文件基础知识
????????我在此次大作業的任務中負責的是繪制模塊,任務是根據玩家輸入的參數繪制生成對應的地圖,以及每走一步生成一張新的狀態圖保存下來。
? ? ? ? 由于我的二位隊友很早就寫完了他們的部分,而我由于各方面繁多事務與學業壓力遲遲未能動手,感到十分愧疚。
? ? ? ? 從今日開始,逐日記錄進度以及一些寫的時候的問題以及心得。
----------------------------------------------2022.12.2----------------------------------------------------------------------
今日-初始日-心得(易錯點自提醒+more things to be done)
復習(寫bmp)文件相關的基礎知識:
一,大綱引入
? ? ?1.文件的目的:數據持久化---記得包含頭文件 fstream
? ? ?2. 文件類型:文本文件(ASCII形式存儲)/二進制文件(原有的樣貌)
?????3.三大操作:ofstream,ifstream,fstream
二,寫文件
? ? ?1.大體流程:創建流對象->打開文件->寫數據(往文件里面寫數據)->關閉文件
ofstream File;File.open("文件路徑",打開方式);File<<"yyhlovezxy"<<endl;//用對象名平替coutFile.close();//這個括號不能少? ? ?2.何為文件路徑?
a.分為兩種:絕對路徑&&相對路徑
b.路徑分隔符有兩種:'/'與'\',但由于后者與cpp中的轉義符重合,為避免歧義,在c++中要么用前者,要么改成‘\\’
c.什么符號表示什么目錄?(可自查)相對路徑的邏輯起點是這個cpp文件所在的直接位置,如若不加任何說明,則自動在與cpp同級的地方生成文件
3.何為打開方式?
? ? ?A.? ?ios::in(若文件不存在則找不到)? ?ios::out(若文件不存在則創一個,若存在則覆蓋)? ? ? ? ? ? ? ? ? ?ios::app? ? ?ios::trunc (不存在同out 存在時先刪再創)???????
? ? ? ? ? ?ios::binary? ? ? :? ?按二進制形式讀入數據
? ? ? B.可以用‘|’操作符配合使用?:ios::binary|ios::out? 表示用二進制的方式寫文件?
? ? ? C.不寫打開方式,默認以輸入+輸出+文本的方式打開(File>>p 則讀到的是ascii碼)
4. 二進制寫入
? ? ?File.write()? ?
三, 讀文件(類比,極為相似)今天晚上困了,先到此為止吧
-------------------------------------12月2日-------------------------完成了數據庫大作業————開心!!-----
繼續研究讀文件,這里只記錄一些關鍵點
1.指的是讀取文件中的數據到程序中來,比如fin>>b[i],表示把打開的文件中的數據存到b[i]中,
2.不要忘記fin.close();--------------寫open 就寫close!!
3.讀取的時候是按照文件中的格式去讀取的(理解的不是那么到位)
4.二進制讀---fin.get();
以下為一些雜碎的知識點的復習
1.文件拓展名都是騙人的!!它只決定用什么軟件or什么解讀方式打開你的文件,而文件的內容是你自己寫進去的,是不變的!(一堆二進制數罷了)
2.fin.eof() ------返回一個bool值--------結束時返回 true ,否則返回false
有坑人點--------恰恰結束時不會返回true ,只有再讀一次,失敗了才會返回true ------還沒遇到過,可暫且不深究
3.fout.write(首地址(一定是char*-------但是指針本身是互通的,所以可以直接強轉成char*),長度(字節數))-----------注意記錄游標的位置(才知道讀到哪了or寫到哪了)
補充-各種東西的字節數-自己搜來看吧+復習字節,比特 bit byte 等等的區別與聯系
總結
以上是生活随笔為你收集整理的大作业-点灯机器人-记录心得(1)-----基础铺垫-文件基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分享35套非常华丽的免费 PSD 网页按
- 下一篇: ssh 连接错误 Too many au