首页 C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组

C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组

举报
开通vip

C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组 fstream提供了三个类,用来实现 c++对文件的操作。(文件的创建、读、写)。 ifstream -- 从已有的文件读 ofstream -- 向文件写内容 fstream - 打开文件供读写 文件打开模式: ios::in 读 ios::out 写 ios::app 从文件末尾开始写 ios::binary 二进制模式 ios::nocreate 打开一...

C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
fstream提供了三个类,用来实现 c++对文件的操作。(文件的创建、读、写)。 ifstream -- 从已有的文件读 ofstream -- 向文件写内容 fstream - 打开文件供读写 文件打开模式: ios::in 读 ios::out 写 ios::app 从文件末尾开始写 ios::binary 二进制模式 ios::nocreate 打开一个文件时,如果文件不存在,不创建文件。 ios::noreplace 打开一个文件时,如果文件不存在,创建该文件 ios::trunc 打开一个文件,然后清空内容 ios::ate 打开一个文件时,将位置移动到文件尾 文件指针位置在 c++中的用法: ios::beg 文件头 ios::end 文件尾 ios::cur 当前位置 例子: file.seekg(0,ios::beg); //让文件指针定位到文件开头 file.seekg(0,ios::end); //让文件指针定位到文件末尾 file.seekg(10,ios::cur); //让文件指针从当前位置向文件末方向移动 10个字节 file.seekg(-10,ios::cur); //让文件指针从当前位置向文件开始方向移动 10个字节 file.seekg(10,ios::beg); //让文件指针定位到离文件开头 10个字节的位置 常用的错误判断方法: good() 如果文件打开成功 bad() 打开文件时发生错误 eof() 到达文件尾 实例: 一、写入文件 #include #include using namespace std; void main() { ofstream in; in.open("com.txt",ios::trunc); //ios::trunc 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示在打开文件前将文件清空,由于是写入,文件不存在则创 建 int i; char a='a'; for(i=1;i<=26;i++)//将 26个数字及英文字母写入文件 { if(i<10) { in<<"0"< #include using namespace std; void main() { char buffer[256]; fstream out; out.open("com.txt",ios::in); cout<<"com.txt"<<" 的内容如下:"< #include using namespace std; void main() { fstream in; char c; in.open("comn.txt",ios::in); while(!in.eof()) { in>>c; cout< #include #include using namespace std; int CountLines(char *filename) { ifstream ReadFile; int n=0; string tmp; ReadFile.open(filename,ios::in);//ios::in 表示以只读的方式读取文件 if(ReadFile.fail())//文件打开失败:返回 0 { return 0; } else//文件存在 { while(getline(ReadFile,tmp)) { n++; } return n; } ReadFile.close(); } string ReadLine(char *filename,int line) { int lines,i=0; string temp; fstream file; file.open(filename,ios::in); lines=CountLines(filename); if(line<=0) { return "Error 1: 行数错误,不能为 0或负数。"; } if(file.fail()) { return "Error 2: 文件不存在。"; } if(line>lines) { return "Error 3: 行数超出文件长度。"; } while(getline(file,temp)&&i>filename; cout<<"\n请输入要读取的行数:"<>l; cout< #include using namespace std; int CountLines(char *filename) { ifstream ReadFile; int n=0; char line[512]; ReadFile.open(filename,ios::in);//ios::in 表示以只读的方式读取文件 if(ReadFile.fail())//文件打开失败:返回 0 { return 0; } else//文件存在 { while(!ReadFile.eof()) { ReadFile.getline(line,512,'\n'); n++; } return n; } ReadFile.close(); } void main() { cout<<"comn.txt的行数为: "< 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 思路没有问题,但在实际操作的时候会发现统计出的行数与实际不符,原因在于 ReadFile.getline(line,512,'\n')这一句:当一行字符超过 512或遇到回车之后,行数自动加 1.如果换行 符在新的一行,返回的结果会比实际多 1;如果不在新的一行,返回结果与实际相符。可以修改如下: #include #include #include using namespace std; int CountLines(char *filename) { ifstream ReadFile; int n=0; char line[512]; string temp; ReadFile.open(filename,ios::in);//ios::in 表示以只读的方式读取文件 if(ReadFile.fail())//文件打开失败:返回 0 { return 0; } else//文件存在 { while(getline(ReadFile,temp)) { n++; } return n; } ReadFile.close(); } void main() { cout<<"comn.txt的行数为: "< #include #include using namespace std; int CountLines(char *filename)//获取文件的行数 { ifstream ReadFile; int n=0; string temp; ReadFile.open(filename,ios::in);//ios::in 表示以只读的方式读取文件 if(ReadFile.fail())//文件打开失败:返回 0 { return 0; } else//文件存在,返回文件行数 { while(getline(ReadFile,temp)) { n++; } return n; } ReadFile.close(); } void main() { ifstream file; int LINES; char filename[512]; cout<<"请输入要打开的文件名:"<>filename; file.open(filename,ios::in); if(file.fail()) { cout<<"文件不存在."<>tc[i]; file>>t[i]; i++; } file.close(); //关闭文件 for(i=0;i
本文档为【C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_922580
暂无简介~
格式:pdf
大小:359KB
软件:PDF阅读器
页数:11
分类:互联网
上传时间:2010-12-26
浏览量:71