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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 给定一个n个正整数组成的数组_算法基础课acwing下载

    给定一个n个正整数组成的数组_算法基础课acwing下载给定长度为 N 的数列 A,然后输入 M 行操作指令。第一类指令形如 C l r d,表示把数列中第 l∼r 个数都加 d。第二类指令形如 Q x,表示询问数列中第 x 个数的值。对于每个询问,输出一个整数表示答案。输入格式第一行包含两个整数 N 和 M。第二行包含 N 个整数 A[i]。接下来 M 行表示 M 条指令,每条指令的格式如题目描述所示。输出格式对于每个询问,输出一个整数表示答案。每个答案占一行。数据范围1≤N,M≤105,|d|≤10000,|A[i]|≤109输

    2022年8月9日
    1
  • php 中instanceof的使用

    php 中instanceof的使用

    2021年11月8日
    41
  • storm单机版部署

    storm单机版部署

    2021年9月11日
    45
  • 什么叫杂谈(e网杂谈)

    本文基于JDK1.8,使用的收集器为ParNew+CMS前言这篇文章的起因是这样的,在上周五凌晨很苦逼得参加双十一压测值班的时候,有个业务方突然打电话来说我们提供的客户端存在内存泄漏问题导致线上应用持续fullgc,本来已经快要睡着的我立马就精神起来了,一通排查,最终定位到了确实是客户端有个bug会导致部分数据会被一直持有进入老年代之后gc不掉,从而就导致了老年代的频繁gc,具…

    2022年4月12日
    82
  • Python深拷贝与浅拷贝_python 赋值

    Python深拷贝与浅拷贝_python 赋值深拷贝和浅拷贝不管对于浅拷贝、还是深拷贝,针对不可变对象str、int、tuple(有点特殊)、boolean,它的内存地址是不变的,拷贝的仅仅是值importcopya=1b=co

    2022年8月6日
    4
  • python randint函数用法_python scipy stats.randint用法及代码示例「建议收藏」

    均匀离散随机变量。作为一个实例rv_discrete类,randint对象从中继承了通用方法的集合(完整列表请参见下文),并使用特定于此特定发行版的详细信息来完善它们。注意:的概率质量函数randint是:对于k=low,…,high-1。randint需要low和high作为形状参数。上面的概率质量函数以“standardized”形式定义。要转移分布,请使用loc参数。特别,r…

    2022年4月12日
    93

发表回复

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

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