f stream_Streaming

f stream_Streamingc++文件流基本用法
C++学习笔记2010-05-2015:07:46阅读57评论0  字号:大中小 订阅
c++的文件流处理其实很简单,前提是你能够理解它。文件流本质是利用了一个buffer中间层。有点类似标准输出和标准输入一样。
  c++IO的设计保证IO效率,同时又兼顾封装性和易用性。本文将会讲述c++文件流的用法。
  有错误和疏漏的地方,欢迎批评指证。
  需要包含的头文件:
  名字空间:std

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

c++文件流基本用法

C++学习笔记 2010-05-20 15:07:46 阅读57 评论0   字号:   订阅

c++的文件流处理其实很简单,前提是你能够理解它。文件流本质是利用了一个buffer中间层。有点类似标准输出和标准输入一样。

  c++ IO的设计保证IO效率,同时又兼顾封装性和易用性。本文将会讲述c++文件流的用法。

  有错误和疏漏的地方,欢迎批评指证。

  需要包含的头文件: <fstream>

  名字空间: std

  也可以试用<fstream.h>

  fstream提供了三个类,用来实现c++对文件的操作。(文件的创建,读写)。

  ifstream       — 从已有的文件读

  ofstream      — 向文件写内容

  fstream        – 打开文件供读写

  支持的文件类型

  实际上,文件类型可以分为两种: 文本文件和二进制文件.

  文本文件保存的是可读的字符, 而二进制文件保存的只是二进制数据。利用二进制模式,你可以操作图像等文件。用文本模式,你只能读写文本文件。否则会报错。

  例一: 写文件

  声明一个ostream变量

  调用open方法,使其与一个文件关联

  写文件

  调用close方法.

   #include <fstream.h>

  void main

  {

  ofstream file;

  file.open(“file.txt”);

  file<<“Hello file/n”<<75;

  file.close();

  }

  可以像试用cout一样试用操作符<<向文件写内容.

  Usages:

  file<<“string/n”;

  file.put(’c’);

  例二:  读文件

  1. 声明一个ifstream变量.

  2. 打开文件.

  3. 从文件读数据

  4. 关闭文件.

   #include <fstream.h>

  void main

  {

  ifstream file;

  char output[100];

  int x;

  file.open(“file.txt”);

  file>>output;

  cout<<output;

  file>>x;

  cout<<x;

  file.close();

  }

    同样的,你也可以像cin一样使用>>来操作文件。或者是调用成员函数

   Usages:

  file>>char *;

  file>>char;

  file.get(char);

  file.get(char *,int);

  file.getline(char *,int sz);

  file.getline(char *,int sz,char eol);

  1.同样的,你也可以使用构造函数开打开一个文件、你只要把文件名作为构造函数的

  第一个参数就可以了。

  ofstream file(“fl.txt”);

  ifstream file(“fl.txt”);

  上面所讲的ofstream和ifstream只能进行读或是写,而fstream则同时提供读写的功能。

     void main()

  {

  fstream file;

  file.open(“file.ext”,iso::in|ios::out)

  //do an input or output here

  file.close();

  }

  open函数的参数定义了文件的打开模式。总共有如下模式

  属性列表

  ios::in 读

  ios::out 写

  ios::app 从文件末尾开始写

  ios::binary 二进制模式

  ios::nocreate 打开一个文件时,如果文件不存在,不创建文件。

  ios::noreplace 打开一个文件时,如果文件不存在,创建该文件

  ios::trunc 打开一个文件,然后清空内容

  ios::ate 打开一个文件时,将位置移动到文件尾

  Notes

  默认模式是文本

  默认如果文件不存在,那么创建一个新的

  多种模式可以混合,用|(按位或)

  文件的byte索引从0开始。(就像数组一样)

  我们也可以调用read函数和write函数来读写文件。

  文件指针位置在c++中的用法:

  ios::beg 文件头

  ios::end 文件尾

  ios::cur 当前位置

  例子:

  file.seekg(

  =”nu0″>0,ios::end);

  int fl_sz = file.tellg();

  file.seekg(0,ios::beg);

  常用的错误判断方法:

  good() 如果文件打开成功

  bad() 打开文件时发生错误

  eof() 到达文件尾

  例子:

   char ch;

  ifstream file(“kool.cpp”,ios::in|ios::out);

  if(file.good()) cout<<“The file has been opened without problems;

  else cout<<“An Error has happend on opening the file;

  while(!file.eof())

  {

  file>>ch;

  cout<<ch;

  }

转自:

http://yeungchungyui.blog.163.com/blog/static/14379780520104203746837/?fromdm&fromSearch&isFromSearchEngine=yes

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191878.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sql2005数据库置疑的解决方法_sql数据库置疑修复工具

    sql2005数据库置疑的解决方法_sql数据库置疑修复工具数据库被置疑后的解决方法(一)A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQLServerEnterpriseManager 里面建立。B.停掉数据库服务器。C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据 库数据文件test_data.mdf。D.启动数据库服务器。此时会看

    2022年8月22日
    7
  • qtcpsocket用法_qtcpsocket发送16进制数据

    qtcpsocket用法_qtcpsocket发送16进制数据在QTcpSocket中的tcp通信,发送数据,接收数据都是QTcpSocket套接字的功能,包括server端,QTcpServer的功能仅仅是作为一个服务器的存在;客户端:classClient:publicQWidget{Q_OBJECTpublic:explicitClient(QWidget*parent=0);~Cl…

    2025年10月17日
    2
  • IDEA 汉化插件

    IDEA 汉化插件最近更新了最新版本的IDEA,听同事说有官方汉化插件了,这里跟大家分享下:直接去设置中插件搜索chinese就可以看到,下载安装,然后重启就会生效ps:如果没有查找到或者不生效,升级下自己的IDEA版本…

    2022年6月7日
    47
  • 滴滴派单规则分析

    滴滴派单规则分析滴滴派单规则1批量匹配(全局最优)派单策略主要的原则是:站在全局视角,尽量去满足尽可能多的出行需求,保证乘客的每一个叫车需求都可以更快更确定的被满足,并同时尽力去提升每一个司机的接单效率,让总的接驾距离和时间最短。这个算法几乎是所有类似派单系统为了解决这个问题的最基础模型,在Uber叫做BatchingMatching,滴滴叫做“全局最优”或者“延迟集中分单”。2基于供需预测的分单(大数据预测)利用对未来的预测:如果我们预测出未来一个区域更有可能有更多的订单/司机,那么

    2022年6月2日
    143
  • 关于AD域的介绍

    关于AD域的介绍关于AD域第一次写博客,记录一下如何搭建自己的域服务器,以及其中遇到的一些问题,感谢“我的bug我做主”的文章《C#实现AD域验证登录(一)》,为防止原文被作者删除,手动将原文复制下来,如有侵权,请及时告知。域的简单介绍为什么要使用域?假设你是公司的系统管理员,你们公司有一千台电脑。如果你要为每台电脑设置登录帐户,设置权限(比如是否允许登录帐户安装软件),那你要分别坐在这一千台电脑前工作。如…

    2022年5月17日
    46
  • oracle 字符串转数组「建议收藏」

    SELECTdistinctREGEXP_SUBSTR(t.llbm1,‘[^;]+’,1,LEVEL,‘i’)ASSTRFROMuser_nbgzlldt,cpcshtinsswheret.shtinsid=s.shtinsidands.wfid=35connectbylevel<=(regexp_count(t.llbm1,’;’)+1)

    2022年4月14日
    81

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号