目录

  • C语言文件操作
  • C++文件操作
  • 对比

C语言文件操作

C语言库函数实现:

  1. 打开1.txt文件并写入"hello world"
  2. 从1.txt读出内容并打印;
int main(int argc, char* argv[])
{char buff[1024] = {"hello world"};    //缓冲区FILE* f = fopen("1.txt","w+");        fwrite(buff, 1, strlen(buff), f);    //写入rewind(f);  //文件指针回到开头int c = fread(buff,1,1024,f);          //读出buff[c] = 0;    //添'\0'让其成为C语言中的字符串;cout << buff << endl;fclose(f);return 0;
}

其中有两个注意的要点:

1)注意文件的打开方式(主要是w+和r+):

"w+"代表(r+和w+不一样的地方括号里标出,其余规则都一样):

打开文件进行“读写”操作,即既可读取,又可写入。

若欲操作的文件不存在,则新建文件(r+则直接报错)。

成功打开文件时,文件指针位于文件开头

打开文件后,会清空文件内原有的内容(r+是不会清空)。

无论是读取内容还是写入内容,都可在文件中任意位置进行,且进行写入操作时,会覆盖原有位置的内容

2)注意文件指针的位置,代码第七行rewind(f); 将文件指针置头了,否则刚fwrite完,文件指针在尾,紧接着fread就读不出来内容了!;

C++文件操作

可以看到C语言的文件操作需要考虑的点很多,我们试试C++;

#include <fstream>
int main(int argc, char* argv[])
{char buff[1024] = "hellow world";//缓冲区//写入ofstream o("1.txt");if (!o.is_open()) cerr << "open error!" << endl;//打开o.write(buff, strlen(buff));o.close();//读出buff[0] = 0;//清空ifstream f("1.txt");//实例对象  ifstream 流类型的f 与 1.txt绑定if (!f.is_open()) cerr << "open error!" << endl;// f.read(buff,1024); //.read读网页,要是想读的内容打印的话,最好用getline读入string,这样会自动追加'\0'变c字符串string ret;string line;while (getline(f,line)) ret += line; //每次只能读一行cout << ret<< endl;f.close();return 0;
}

C++典型的特征就是用了ofstream和ifstream这两个文件写入和文件读出流,先实例化对象,再一步步调用对象方法;

对比

C语言方法:代码量少,但是注意的细节比较多,比如文件打开的方式,文件指针的位置;

C++方法:代码量也不算多,实例化对象以后可以无脑调用.is_open()打开;

不过这两种方式都需要记得如果读取内容并打印,需要手动追加‘\0’,让文本内容变成C字符内容才能正常打印;

实际上后期网络编程多数情况是需要读取前端人员制作的html内容或者客户端发来的各种报文,熟悉C++方法以后好用很多;

C语言和C++的文件操作相关推荐

  1. C语言和C++的文件读取、写入函数

    文件的输入输出函数 键盘.显示器.打印机.磁盘驱动器等逻辑设备, 其输入输出都可以通过文件管理的方法来完成.而在编程时使用最多的要算是磁盘文件, 因此本节主要以磁盘文件为主, 详细介绍C语言.C++提 ...

  2. config语言和config.in文件

    在做linux驱动时需要将自己写的驱动程序编译到内核总要修改Config.in文件,以前都是照葫芦画瓢的添加一句就可以加入自己的驱动了,比如写char型驱动的只需要修改既定的char文件夹中的Conf ...

  3. 如何搞定C语言的文件操作

    在平常学习中,有个很头疼的问题,就是每次程序运行时计算出的数据,在程序结束后也消失了,那如何才能将数据存储起来,通常企业里会使用数据库来实现,但今天我来介绍一种更简单易懂的方法,将数据放在磁盘文件里  ...

  4. R语言和RStudio安装,载入TXT、CSV和XLSX(利用RODBC)文件

    系列文章 R语言进行系统聚类分析并作图(数据来源国家统计局) R语言载入arules程序包的Epub数据集,使用Apriori算法,进行关联规则分析 R语言利用贝叶斯分类法(klaR程序包),训练数据 ...

  5. java数组比较的头文件_C语言和JAVA的区别

    C语言和JAVA的区别 C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.下面是小编 ...

  6. 小白学习记录篇01---C语言和C++的区别以及C语言中文件的含义(不足之处欢迎大佬补充提醒。)

    1.C语言和C++的对比 (1)创建文件的后缀名不同,如果创建C语言的文件通常以.c结尾,而C++通常以.cpp结尾. <1>这里就想要补充两个文件的概念,什么是.c文件?什么是.cpp文 ...

  7. python语言和sql语言的区别_SQL和Python的集合操作对比:适合的就好!

    对于分析师或数据科学家而言,熟悉多种分析编程语言可以在当今数据环境中赢得优势.在多语言法的主流对话中,尤其是SQL语言和Python语言,通常被描述为功能性离散. SQL和Python都可以实现许多功 ...

  8. c语言中double sper是什么意思啊,C语言的文件操作的使用

    知识点回顾 变量.数组.结构体都是存储数据的方式 结构体是一种变量的模板,相对于变量.它可以存储多项数据,相对于数组,结构体中成员的数据类型可以不同. #include #include struct ...

  9. Go 言 Go 语,一文看懂 Go 语言文件操作

    文章目录 ⛳️ 实战场景 打开关闭文件 读取文件 bufio 读取文件 写文件 ⛳️ 实战场景 本篇博客为大家再次带来 Go 语言的基础知识,这次要学习的内容是 Go 中的文件操作. 打开关闭文件 在 ...

最新文章

  1. R构建KNN多分类模型
  2. OAuth的机制原理讲解及开发流程
  3. NHibernate 中删除数据的几种方法
  4. Hyperledger Fabric 私有数据(1)概念
  5. python意外缩进引发逻辑错误_如何编写 Python 程序
  6. c语言 函数的参数传递示例_C语言中带有示例的remove()函数
  7. java调用存储过程同时获取[返回参数]和[结果集]
  8. Mysql和vs2010 的连接
  9. synchronized锁和lock锁 队列中线程执行顺序对比
  10. 计算机控制v90伺服,西门子S7-1200控制V90伺服教程(TIA).pdf
  11. wireshark抓包分析怎么看进程_wireshark抓包数据怎么看?wireshark数据分析教程
  12. python一百行代码的项目_用python一百行代码实现xss扫描工具
  13. Java、JSP小区车辆停车管理系统
  14. cJSON 轻量级json解析器 速度快
  15. mysql卸载报错2503_Win10系统卸载Skype软件报错2503的解决方法
  16. 阿里云国际版CDN 安全保护指南:管理篡改、攻击和内容
  17. 从巴菲特身上学习到的投资哲学
  18. css盒心形的代码过程,如何使用CSS和D3实现用文字组成的心形动画效果(附代码)...
  19. Java------IO流之文件专属流
  20. MAC--终端Terminal 快捷键

热门文章

  1. 【转】Android-Accessibility(辅助功能/无障碍,自动安装APP)
  2. Photoshop:画淡彩水墨画
  3. 旧笔记本电脑利用diy_如何加快旧笔记本电脑的速度-使用躺在家里的东西
  4. Hbuilder未检测到手机或模拟器请重试、苹果手机无法和hbuderx 联机调试
  5. rclone unc_对于UNC科学家而言,开源是前进的道路
  6. C/C++(stdout)实时输出
  7. 抖音技术开放日报名中:日活1.5亿背后技术全解
  8. C++程序设计案例教程(学习笔记)——Cha7多态
  9. 计算机邮票的设计教案,大班社会活动教案:小小邮票设计师教案(附教学反思)...
  10. Suse获取磁盘利用率最大值