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


相关推荐

  • AGV控制系统搭建

    目的  本文介绍自动导引车(AGV)车载控制系统的实现过程,分为硬件搭建和软件设计两部分,并在其中穿插AGV控制的基础知识讲解。1.车载控制器1.1控制器的类型  车载控制器是控制系统乃至整个AGV的核心,那么应该选择哪种控制器呢?根据笔者的经验,现在的AGV厂家采用的车载控制器基本可以分为以下三种:  下面简要介绍几种控制器的特点:  1.PLC…

    2022年4月9日
    110
  • 免杀工具charlotte详解,想要成为白帽子,你不会连这个工具都不会用吧?「建议收藏」

    免杀工具charlotte详解,想要成为白帽子,你不会连这个工具都不会用吧?「建议收藏」前言多看看别人的工具,自己也就会写了。(手动狗头)charlotte是一款Python编写的自动化免杀工具,用来生成免杀的dll文件,在antiscan.me上为全绿,效果可见一斑。官方地址如下:https://github.com/9emin1/charlotte,其依赖mingw-w64环境,可使用下面的命令安装:apt-getinstallmingw-w64*利用动态导出以及xor编码实现了对杀软的绕过。其文件很简单,只有一个简单的py文件以及一个cpp文件,根据以后以往的经验来看

    2022年8月20日
    3
  • java中如何理解类与对象,及局部变量和成员变量的区别

    java中如何理解类与对象,及局部变量和成员变量的区别

    2021年9月29日
    56
  • 数据库学习网站

    数据库学习网站Access中国ACCESSXPFAQ网站http://bcd.office-cn.net/对ACCESSXP技术精品文章、FAQ和参考手册都进行整理归类,以便于大家查找和阅读,并

    2022年8月3日
    3
  • cubieboard2 android,在cubieboard2双卡版上从零构建Android4.2.2系统「建议收藏」

    cubieboard2 android,在cubieboard2双卡版上从零构建Android4.2.2系统「建议收藏」板子买了一段时间,终于有时间可以玩玩了,论坛上找浪费了很多时间。把虚拟机环境搭建起来,编译好镜像就可以直接使用烧写工具烧写到TF卡上了。由于买的是双TF卡插槽,没有nand,所以只能在TF卡上制作镜像了。制作过程参考官方文档,好好总结一下,一来以后自己再做时图懒图方便,二来可以方便后来人。主要可以分为一下几个步骤:一、搭建编译环境可以在XP或win7系统上安装虚拟机,在虚拟机中安装交叉编译工具来编…

    2022年7月22日
    9
  • 集成学习-stacking算法

    众所周知,集成学习算法,它将多个弱分类器集成起来,以达到较高的分类准确率。常见的集成学习方法:boosting bagging stacking今天主要讲stacking.Stacking的基本思想将个体学习器结合在一起的时候使用的方法叫做结合策略。对于分类问题,我们可以使用投票法来选择输出最多的类。对于回归问题,我们可以将分类器输出的结果求平均值。…

    2022年4月16日
    65

发表回复

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

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