c++ 读写文件
来源:互联网 发布:ios app制作软件 编辑:程序博客网 时间:2024/06/06 00:14
写文件
#include <iostream>#include <fstream>using namespace std;int main(){ofstream out;out.open("com.txt",ios::trunc); //ios::trunc表示在打开文件前将文件清空,由于是写入,文件不存在则创建int i;char a='a';for(i=1;i<=26;i++)//将26个数字及英文字母写入文件{ if(i<10) { out<<"0"<<i<<"\t"<<a<<"\n"; a++; } else { out<<i<<"\t"<<a<<"\n"; a++; }}out.close();//关闭文件return 0;}
#include <iostream>#include <fstream>using namespace std;int main(){char buffer[256];fstream out;out.open("com.txt",ios::in);cout<<"com.txt"<<" 的内容如下:"<<endl;while(!out.eof()){ out.getline(buffer,256,'\n');//getline(char *,int,char) 表示该行字符达到256个或遇到换行就结束 cout<<buffer<<endl;}out.close();cin.get();//cin.get() 是用来读取回车键的,如果没这一行,输出的结果一闪就消失了return 0;}
读取某一行
#include <iostream>#include <fstream>#include <string>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<line-1){ i++;}file.close();return temp;}int main(){int l;char filename[256];cout<<"请输入文件名:"<<endl;cin>>filename;cout<<"\n请输入要读取的行数:"<<endl;cin>>l;cout<<ReadLine(filename,l);cin.get();cin.get();return 0;}
控制台输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc pateo@pateo-B86N53X:~/work/study$ ./main 请输入文件名:com.txt 请输入要读取的行数:1212l
读取整个有多少行
#include <iostream>#include <fstream>#include <string>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();}int main(){cout<<"comn.txt的行数为: "<<CountLines("com.txt")<<endl;cin.get();return 0;}
说明:
ios::app 添加到文件尾
ios::ate 把文件标志放在末尾而非起始。
ios::trunc 默认. 截断并覆写文件。
ios::nocreate 文件不存在也不创建。
ios::noreplace 文件存在则失败。
ios::binary 以二进制模式进行IO操作
ios_base::beg ——文件开始位置
ios_base::cur ——文件当前位置
ios_base::end ——文件末尾位置
下面以seekg为例说明一下指针移动的方法:
file.seekg(3) ——指针移动到第三个字符的位置
file.seekg(ios_base::beg) ——指针移动到文件开头
file.seekg(ios_base::end) ——指针移动到文件末尾
file.seekg(-3,ios_base::cur) ——指针当前位置向前移动三个字符
file.seekg(3,ios_base::cur) ——指针当前位置向后移动三个字符
file.seekg(3,file.tellg()) ——指针当前位置向后移动三个字符
file.seekg(file.tellg()+3) ——指针当前位置向后移动三个字符
对文件操作完毕后别忘了关闭文件
file.close();
- 【C/C++】文件读写
- c语言读写文件
- 文件读写(c)
- C#-读写INI文件
- [C++]文件读写操作
- C#读写INI文件
- C 读写文件
- C读写ini文件
- c#FileStream文件读写
- 读写文件 c
- WinAPI C读写文件?
- C语言读写文件
- 文件读写(C++)
- c中的文件读写
- C文件读写
- c读写文件
- c读写Exc文件
- C/C++ 读写文件
- 读 Beginning Android Games 2nd Edition (八) 创建输入事件处理类
- Mstar揭神秘面纱,山寨启二次洗牌
- 基于visual c++之windows核心编程代码分析 保持程序单实例运行
- 一个资深SOHO程序员对新人的建议
- 机器人之旅:当Arduino遇上Android
- c++ 读写文件
- Google 确认 Chrome 即将支持 GPU 硬件加速
- linux下的文件和目录权限
- 6410 Eboot 显示图片
- myeclipse构建mvaen
- 请饶了刚刚步入大学校门的学生吧
- 【HUI】Tooltip(提示组件)——2.Tooltip in CSS2(优化方案)
- 7890
- 手机实名制不是一劳永逸的防火墙