| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 自考2019版《C++程序设计》04747,第八章 文件操作(附课后习题答案) -> 正文阅读 |
|
[C++知识库]自考2019版《C++程序设计》04747,第八章 文件操作(附课后习题答案) |
考试题型:主要在选择题、填空题,比分占5%左右。 第一节 文件基本概念和文件流类1、在C++里,文件操作是通过流来完成的。C++总共又输入文件流、输出文件流和输入输出文件流3种,并已将它们标准化。 要打开一个输入文件流,需要定义一个ifstream类型的对象; 要打开一个输出文件流,需要定义一个ofstream类型的对象; 如果要打开输入输出文件流,则要定义一个fstream类型的对象。 这三种类型都定义在头文件<fstream>里。 2、使用文件流 流类具有支持文件的能力,在建立和使用文件时,就像使用cin和cout一样方便。 可以总结出对文件进行操作的方法如下: (1)打开一个相应的文件流 (2)把这个流和相应的文件关联起来 因为ifstream、ofstream和fstream这3个类都具有自动打开文件的构造函数,而这个构造函数就具有open()的功能。因此,事实上可以用一条语句:ofstream myStream(“myText.txt”);来完成上述两步。如果指定文件路径,路径中的“\”号必须使用转义字符表示。例如:“\\”表示\ (3)操作文件流 综上所述,流是I/O流类的中心概念。流是一种抽象,它负责再数据的生产者和消费者之间建立联系并管理数据的流动,程序将流对象看做是文件对象的化身。 一个输出流对象是信息流动的目标,ofstream是最重要的输出流。 一个输入流对象是数据流动的源头,ifstream是最重要的输入流。 一个iostream对象可以是数据流动的源或目的,fstream就是从它派生的。 第二节 打开和关闭文件(重点)1、根据文件中数据的组织形式,可以将文件格式分为文本格式和二进制格式。 cin和cout只能处理C++中以标准设备为对象的输入/输出,而不能处理以磁盘文件为对象的输入/输出。 以下三个为可用于文件操作的文件类: (1)ifstream,用来支持从磁盘文件的输入; (2)Ofstream,用来支持向磁盘文件的输出; (3)fstream类,用来支持对磁盘文件的输入输出; 2、打开磁盘文件 通过创建fstream类对象打开文件fstream<对象名>; <对象名>.open(“<文件名”,<访问方式(读\写)>); 如果指定文件路径,路径中的“\”号必须使用转义字符表示。 例: fstream outfile; //dingyi fstream类对象outfile outfile.open(“f1.dat”,ios::out); 或者合并写成: fstream outfile(“f1.dat”,ios: :out);? 或者合并写成:fstream outfile(“f1.dat”,ios: :out); 3、文件打开模式标记:
4、关闭磁盘文件 关闭文件用成员函数close 实际上就是解除该磁盘文件与文件流的关联,不能再通过文件流对该文件进行输入/输出。 格式:<对象名>.close(); 第三节 文件读写操作1、读写文本文件 文本文件中的每一个字节均以ASCII码形式存放数据,即一个字节存放一个字符。可以用一下两种方法对文本文件进行读写操作: (1)用流插入运算符“<<”和流提取运算符“>>” (2)用put、get、getline等成员函数进行输入/输出 例: 从键盘输入10个整数到数组,将数组送入磁盘文件。 #include<iostream> #include<fstream> Using namespace std; int main() int a[10]; ofstream outfile(“f1.dat”);? //打开文件 if(!outfile)? //如果打开失败,返回0 { ??????? cerr<<“open error!”<<endl; ??? exit(1);} cout<<”enter 10 numbers: ”<<endl; for(int i=0;i<10;i++) { ??? cin>>a[i]; ??? outfile<<a[i]<<” “; } //向文件输出数据 outfile.close();? //关闭磁盘文件 return 0; } 2、二进制文件的读写操作 同样需要打开和关闭文件 在打开时要用ios: :binary指定为二进制形式。 对二进制文件的读写主要用istream类的成员函数read和write来实现。 例: 写入操作:a.write(p1,40);//将p1指向的单元开始的40个字节内容写到与a关联的磁盘文件中 读取操作:b.read(p2,30);//从b所关联的文件中,读入30个字节,存放在指针p2所指向的一段内存中 第四节 随机访问文件1、可以随机访问和修改文件中的任意位置上的数据 除了要打开、关闭文件和读写数据之外,还要使用读、写指针在磁盘文件中有一个文件读写位置标记来指明当前应进行读写的位置。 2、有关文件位置标记的成员函数 以g结尾的,表示get,即作为输入;以p结尾的,表示put,即作为输出;
随机文件操作: <文件中的位置>是相对于文件头的流中位置 <位移量>也是long型字节数 <参照位置>为枚举常量,具有下述含义: ios: :beg //=0,文件头的位置 ios: :cur //=1,当前标记的位置 ios: :end //=2,文件尾的位置 例: input.seekg(200); //位置标记向前移动200字节 Input.seekg(100,ios: :beg); //位置标记移动到文件头后100字节处 课后习题答案:一、选择题 1-5、BBCBD? 6-10、ADBDB? 11-15、ADDAC? 16-17、AD 二、填空题 (1)ostream、iostream、<iostream>? (2)istream、ostream、cerr、clog (3)ifstream、ofstream、fstream、fstream? (4)fstream.h (5)ifstream datafile.open("Text.txt"); 三、程序分析题 1、
2、
四、程序填空题 1、
2、
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:36:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |