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)
上一篇 2026年1月23日 下午4:43
下一篇 2026年1月23日 下午5:15


相关推荐

  • 人脸识别系统如何建模_3dmax人脸建模

    人脸识别系统如何建模_3dmax人脸建模本发明涉及生物特征识别,特别是涉及人脸识别中的特征建模方法。背景技术:人脸识别技术一般包括四个组成部分,分别为人脸图像采集、人脸图像预处理、人脸图像特征提取以及匹配与识别,具体来说:人脸图像采集及检测是指通过摄像镜头等视频图像采集装置采集包括有人脸的视频或图像数据,可以是采集对象的静态图像、动态图像、不同的位置、不同表情等。人脸图像预处理是指从采集的图像数据中确定人脸的部分,并进行灰度校正、噪声过…

    2025年12月10日
    5
  • docker中安装Nexus3

    docker中安装Nexus3拉取 Nexus3 的镜像 dockerpullso nexus3 启动 Nexus3 的容器 dockerrun dnamenexus3r always p8081 8081 p8082 8082 p8083 8083 p8084 8084 p8085 8085sonatype nexus3 访问 Nexus 界面 h

    2026年3月16日
    2
  • 笔记本卡顿不流畅是什么原因_笔记本卡顿不流畅是什么原因_笔记本电脑卡顿不流畅如何解决-win7之家…「建议收藏」

    笔记本卡顿不流畅是什么原因_笔记本卡顿不流畅是什么原因_笔记本电脑卡顿不流畅如何解决-win7之家…「建议收藏」有不少笔记本电脑用户在使用过程中,发现会经常会遇到卡顿不流畅的情况,很多用户不知道是什么原因引起的,其实原因有很多,可能是电脑本身配置不足,或者电脑占用率过高,或者内存不足等,接下来给大家带来笔记本电脑卡顿不流畅的详细解决方法吧。具体步骤如下:1、CPU不足电脑卡顿很多时候都是因为CPU占用过高,实质还是CPU太小引起的,我们可以将多余的进程或者软件关闭,或者更换性能好的CPU来解决这个问题,电脑…

    2025年10月30日
    7
  • 信号带宽和信道带宽_信号带宽大于信道带宽

    信号带宽和信道带宽_信号带宽大于信道带宽信号带宽:一个信号可以分解为一系列不同频率正余弦函数的加权和。带宽,就是那些对应的加权非零部分对应的三角函数的频率宽度。信号频谱的宽度,也就是信号的最高频率分量与最低频率分量之差。例如,比如我们学过的sin(x)函数,就是一个信号,sin(x)是一个三角函数,所以其若用傅里叶级数表示,加权非零部分就是该信号本身。其对应的信号的带宽就是1HZ.(因其只有一个频率)。再例如:一个由数个正弦波叠加成的方…

    2022年10月11日
    5
  • 用冒泡法和选择法对10个整数排序(C语言 数组)

    用冒泡法和选择法对10个整数排序(C语言 数组)1 区别 nbsp nbsp nbsp nbsp nbsp nbsp 两者最大的区别在于算法本身 nbsp nbsp nbsp nbsp nbsp nbsp nbsp 冒泡法是相邻元素两两比较 每趟将最值沉底即可确定一个数在结果的位置 确定元素位置的顺序是从后往前 其余元素可以作相对位置的调整 可以进行升序或降序排序 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 选择法是每趟选出一个最值确定其在结果序列中的位置 确定元素的位置是从前往后 而每趟最多进行一次交换 其余元素的相对位置不变 可进行降序排序或升序排序 2 冒泡法

    2026年2月1日
    1
  • P2P协议概述

    P2P协议概述本文转自 nbsp http my oschina net u blog nbsp 绪言 1 1 nbsp Peer to Peer 介绍定义 1 Peer to peer nbsp 是一类允许一组用户互相连接并直接从用户硬盘上获取文件的网络 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 2 Peer to peer 网络是一个运行于个人电脑上的应用 通过网络在用户间分享文件 P2P 网络通过连接个人电脑分享文件

    2026年3月26日
    2

发表回复

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

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