大作业-点灯机器人-记录心得(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;//用对象名平替cout

File.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 等等的区别与联系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值