C++文件操作详解:读写、行数计算与getline应用

需积分: 10 15 下载量 114 浏览量 更新于2024-07-27 1 收藏 87KB DOC 举报
C++文件读写是编程中的一项基本操作,特别是在处理文本数据时必不可少。本文档主要介绍C++下文件操作的相关知识,重点讲解了如何使用fstream库进行文件的简单读写,以及如何统计文件的行数,并演示了如何将文件数据读取到数组中。 首先,C++中的fstream库提供了三个类:ifstream(用于从已存在的文件读取)、ofstream(用于向文件写入内容)和fstream(用于同时进行读写操作)。这些类支持多种文件操作模式,如: 1. 文件打开模式: - ios::in:以读取模式打开文件,允许读取文件内容。 - ios::out:以写入模式打开文件,覆盖原有内容或创建新文件。 - ios::app:追加模式,在文件末尾添加内容,不覆盖原有内容。 - ios::binary:二进制模式,适用于处理非文本数据,如图片或音频。 - 其他模式如ios::nocreate、ios::noreplace和ios::trunc用于控制文件的创建和内容处理。 文件指针在C++中用于控制读写位置,常用的方法有: - ios::beg:文件头部,即默认位置。 - ios::end:文件尾部。 - ios::cur:当前位置。 通过调用seekg函数可以移动文件指针,例如: - file.seekg(0,ios::beg):定位到文件开头。 - file.seekg(0,ios::end):定位到文件末尾。 - file.seekg(10,ios::cur):从当前位置向文件尾方向移动10个字节。 - file.seekg(-10,ios::cur):从当前位置向文件开头方向移动10个字节。 错误检查是文件操作的重要环节,以下是一些常用的错误判断方法: - good():检查文件是否成功打开或操作是否完成,返回true表示成功。 - bad():当文件打开失败或出现其他严重错误时,返回true。 - eof():检测是否已经到达文件的结束,通常用于读取操作。 举例来说,下面的代码展示了如何使用ofstream类写入文件,以及如何使用ios::trunc模式清空文件内容: ```cpp #include <iostream> #include <fstream> using namespace std; void main() { ofstream inFile; inFile.open("com.txt", ios::trunc); // 清空并准备写入 int i; char a = 'a'; for (i = 1; i <= 26; i++) { if (i < 10) { inFile << "0" << i << "\t" << a << "\n"; a++; } else { inFile << i << "\t" << a << "\n"; a++; } } inFile.close(); // 关闭文件 } ``` 这个例子中,程序会创建一个名为"com.txt"的文件(如果不存在),并将数字0-9和对应的小写字母按照格式写入文件,每对数字和字母之间用制表符分隔,每行结束用换行符。 总结来说,C++文件读写涉及到文件流操作、模式选择、文件指针定位和错误检查等多个方面,理解并熟练掌握这些内容对于进行有效的文件操作至关重要。无论是简单的文本文件操作还是复杂的二进制文件处理,都离不开对这些基础知识的运用。