1.8 简单的文件输入输出
1. 将数据写入文本文件中, 包含几个要点:
(1) 必须包含头文件fstream
(2) 头文件fstream中定义了一个用于处理输出的ofstream类
(3) 需要声明一个或多个ofstream对象
(4) 需要将ofstream对象与文件关联起来, 方法之一是使用open()
(5) 使用完文件后, 应使用close()方法将其关闭
(6) 可结合使用ofstream对象和操作符<<来输出各种类型的数据.
定义一个ofstream类, ofstream outfile1; 然后将其与文件关联起来,使用对象的open方法来关联文件.例如下面几种:
(1) 直接以文件路径作为open参数:outfile1.open("fish.txt"). 如果没有fish.txt文件, open()方法将会创建一个fish.txt文件, 如果已经包含了一个fish.txt文件, open()将首先丢弃其原先的内容, 然后将新的输入加入到文件中.(当然有方法让我们保留原来的内容)
(2) open()以字符串作为参数:
char filename[50];
cin>>filename;
outfile1.open(filename);
创建了ofstream对象, 并与文件关联之后, 下面是怎么使用此对象了. 使用方法与cout对象类似, 结合<<操作符. 例如:
double w=125.8;
outfile1<<w; //将w写入对象outfile1所关联的文件fish.txt中
char line[81]="I have a dream!";
outfile1<<line<<endl; //将line中内容和一个换行符输入对象outfile1所关联的文件fish.txt中
总结文件输出的主要步骤:
(1) 包含头文件fstream; #include<fstream>
(2) 创建一个ofstream对象; ofstream outfile1;
(3) 将ofstream对象同一个文件关联起来; outfile1.open("fish.txt");
(4) 想使用cout那样使用ofstream对象; outfile1<<line<<endl;
#include<iostream> #include<fstream> using namespace std; int main() { char automobile[50]; int year; double a_price; ofstream outfile; outfile.open("fish.txt"); cout<<"Enter your automobile's information: "; cin>>automobile; outfile<<"Enter your automobile's information: "<<automobile<<endl; cout<<"When your buy it: "; cin>>year; outfile<<"When your buy it: "<<year<<endl; cout<<"What's the price: "; cin>>a_price; outfile<<"What's the price: "<<a_price<<endl; outfile.close(); /分割线,下面是数据 //18 19 18.5 13.5 14 //16 19.5 20 18 12 18.5 char filename[60]; ifstream infile; cin.get();//吸收一个换行符 cout<<endl<<"Enter name of data file: "; cin.getline(filename,60); infile.open(filename); if(!infile.is_open()) { cout<<"Fail to open the file!"<<endl; } double value; double sum=0; int count=0; infile>>value; //读取第一个一个double数据赋值给value while(infile.good())//如果输入正确并且没有到文件结尾处(EOF),循环结束则可能有多个原因:1.到达文件尾部EOF,2.输入不正确,数据类型不匹配,3其他原因 { ++count; sum+=value; infile>>value;//继续读取数据 } if(infile.eof())//如果到达文件尾部而停止while,则 cout<<"Reach the end of file."<<endl; else if(infile.fail())//如果是因为数据不匹配,则 cout<<"Input terminated by data mismatch./n"; else//可能因为未知原因 cout<<"Input terminated for unknown reason./n"; infile.close(); ofstream outfile2; outfile2.open("output.txt"); if(count==0)//没有数据被处理 cout<<"No data processed./n"; else//有数据被处理则输出处理结果 { cout<<"Items read: "<<count<<endl; cout<<"Sum: "<<sum<<endl; cout<<"Average: "<<sum/count<<endl; outfile2<<"Items read: "<<count<<endl;//输出结果到文件output.txt outfile2<<"Sum: "<<sum<<endl; outfile2<<"Average: "<<sum/count<<endl; } outfile2.close(); //输出: //Items read: 10 //Sum: 168.5 //Average: 16.85 system("pause"); return 0; }
2. 读入文本数据, 包含几个要点
(1) 必须包含头文件fstream
(2) 头文件fstream定义了一个用于处理输入的ifstream类
(3) 需要声明一个ifstream对象
(4) 将ifstream对象与文件关联
(5) 结合操作符>>来读取各种类型数据
(6) 使用ifstream对象的get()方法来读取一个字符, getline()方法读取一行字符
(7) 如果最后一个读取操作成功, 返回true, 否则返回false.
定义个ifstream对象: ifstream infile; 然后将这个对象与文件关联起来, 使用open()方法来关联文件. infile.open("fish.txt"); 这样使用对象:
double wt;
infile>>wt; //从file中读取一个数据
char line[81];
infile.getline(line, 81);//读取一行字符存入line中
如果打开的文件不存在, 则无法对对象进行输入, 用is_open()方法判断, 成功打开文件, 则infile.is_open()返回true, 否则返回false.
if(!infile.is_open())
cout<<"fail to open the file/n";
示例看上面的程序
1.8 简单的文件输入输出相关推荐
- C++ STL 一个简单的文件输入输出示例
//本程序实例简单介绍C++如何读写文件 #include <iostream> #include <fstream> #include <string> usin ...
- c++语言文件流,C++ IO类、文件输入输出、string流详细讲解
新的C++标准中有三分之二的内容都是描述标准库.接下来重点学习其中几种核心库设施,这些是应该熟练掌握的. 标准库的核心是很多容器类(顺序容器和关联容器等)和一簇泛型算法(该类算法通常在顺序容器一定范围 ...
- python 学习笔记 5 -- 文件输入输出
本文主要介绍python下的文件输入输出操作,python的文件操作简单易用-通过本文相信你可以熟练掌握file和pickle这两种输入输出操作! 1.文件 你可以通过创建一个file类的对象来打开一 ...
- C ++基础 | 格式化输出,文件输入输出(File IO),头文件(Header Files)_3
目录 格式化输出 文件输入输出(File IO) 头文件(Header Files) 格式化输出 要格式化数据,我们可以使用转义字符串(Escape Sequence)也称字符实体(Character ...
- C++实现简单的文件I/O操作
文件 I/O 在C++中比烤蛋糕简单多了. 在这篇文章里,我会详细解释ASCII和二进制文件的输入输出的每个细节,值得注意的是,所有这些都是用C++完成的. 一.ASCII 输出 为了使用下面的方法, ...
- C/C++文件输入输出操作——FILE*、fstream、windowsAPI
C/C++文件输入输出操作--FILE*.fstream.windowsAPI 基于C的文件操作 在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之. 一. ...
- python中年大叔学编程_中年大叔学编程-Python简单操作文件
原标题:中年大叔学编程-Python简单操作文件 在计算机中,经常打交道的就是各种文档,用得比较多的软件就是office和记事本来操作文件,那么我们试试用Python来简单读写文件. Open函数的用 ...
- 简述php中文件上传过程,简单php文件上传详细说明
关于文件上传我们讲了很多,这只是一款最基本的简单的文件上传功能,同时本教程也介绍了关于上传的原理以及各种函数的使用与file的参数说明,以及php.ihi设置上传文件大小配置等. 1 如果实现小文件 ...
- python 中文件输入输出及os模块对文件系统的操作
整理了一下python 中文件的输入输出及主要介绍一些os模块中对文件系统的操作. 文件输入输出 1.内建函数open(file_name,文件打开模式,通用换行符支持),打开文件返回文件对象. 2. ...
最新文章
- php 使用curl模拟登录discuz以及模拟发帖
- 抵御故障引发系统性失控的基本原则:混沌工程
- Java JPanel的使用
- DevOps:软件架构师行动指南(文摘)
- cef使用缓存_CEF 文件下载功能实现
- 全局变量初始化顺序探究
- 详解停车位检测算法 Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark
- NodeJS知识汇总
- iis如何处理并发请求
- 使用.net FtpWebRequest 实现FTP常用功能 上传 下载 获取文件列表 移动 切换目录 改名 ....
- char赋值字符串常量和数值的区别
- centos7安装docker并设置开机自启以及常用命令
- java字符排序_如何按字母顺序对字符串进行排序java
- 一个强大的网络库RxEasyHttp
- 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_5 响应之使用forward和redirect进行页面跳转...
- 欢迎访问我的博客园,希望对你有所帮助
- 硬笔行书字帖3500常用字_硬笔行书每日一字 · 袁
- 网易云爬取歌词进行歌词词云可视化
- AUTO CAD快捷键常见命令
- 论证可行性有哪几个方面
热门文章
- python封装方法有几种_python之--------封装
- Windows安装python3.6.x版本
- 枚举--遍历搜索空间的例子:熄灯问题
- java.sql.SQLException: No value specified for parameter 1
- I/O端口地址分配表(转)
- 测试 Zoundry Raven
- CO葵花宝典-4.物料成本估算配置
- Linux下使用parted对硬盘进行分区
- 编写简单的发布者和订阅者(C++)---ROS学习第9篇
- 不动产登记证书曝光 一个“改变”必须注意(图)