IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> C++读写txt文档 -> 正文阅读

[移动开发]C++读写txt文档

/*
<ifstream> :从已有文件读
<ofstream> :向指定文件写
<fstream> : 打开文件供读写
*/
#include<fstream>
void main()
{
	/*文件打开模式:
	 *ios::in             只读
     *ios::out            只写
     *ios::app            从文件末尾开始写,防止丢失文件中原来就有的内容
     *ios::binary         二进制模式,缺省情况下是以文本方式打开
     *ios::trunc          打开一个文件,然后清空内容
     *ios::ate            打开一个文件时,将位置移动到文件尾
     *
     *ios::nocreate:     不建立文件,所以文件不存在时打开失败 //以下两种与编译器有关,在VC编译器下ios::_Nocreate
     *ios::noreplace:    不覆盖文件,所以打开文件时如果文件存在失败//在VC编译器下ios::_Noreplace
	*/

	//第一种打开文件方式
	ifstream ifile("data1.txt",ios::in);//从文件向外读取(只读),若没有该文件,则打开失败	
	//第二种打开文件方式
	/*void open(const char* filename,int mode,int access);
	*filename:要打开的文件名
    *mode:要打开文件的方式
    *access:打开文件的属性(0:普通文件,打开访问1:只读文件2:隐含文件4:系统文件),缺省为0
	*/
	//ifstream ifile;
	//ifile.open("data1.txt", ios::in);
	
	ofstream ofile("data2.txt", ios::out);//向文件中写入数据(只写),若没有该文件,则默认创建该文件
	//ofstream ofile("data2.txt", ios::out|ios::app);//从文件末尾开始追加写数据,若没有该文件,则默认创建该文件
	
	//这里的txt文档在当前程序文件所在目录可以直接像上面那样打开,否则需要使用相对路径或绝对路径指明文件位置
	//ifstream ifile("../data1.txt",ios::in);//相对路径指明文档在当前程序文件所在目录的上一级目录
	//ifstream ifile("D:/test/data1.txt",ios::in);//绝对路径指明文档在当前程序文件所在目录的上一级目录
	
	if (!ifile.is_open()) {
		cout << "data1.txt文件打开失败!" << endl;
	}
	if (!ofile.is_open()) {
		cout << "data2.txt文件打开失败!" << endl;
	}

	char readbuf[2000];
	int line = 1;
	memset(readbuf, 0, sizeof(readbuf));

	//第一种读方式
	while (ifile >> readbuf) {//这里使用标准库<ifstream>中的>>运算符,按换行符读取(碰到换行符就跳过并暂停读取),并自动忽略空白行(前提是缓存区readbuf足够)
		cout <<line++<<": "<< readbuf<<endl;//这里需要添加换行符
		//将读取内容写入新文件
		ofile << readbuf << endl;//这里需要添加换行符(这里使用标准库<ofstream>中的<<运算符)
		memset(readbuf, 0, sizeof(readbuf));
	}

	//第二种读方式
	//while (ifile.getline(readbuf,sizeof(readbuf))) {//这里使用标准库<ifstream>中的getline()函数(碰到换行符就就跳过暂停读取),按换行符读取,不会忽略空白行(前提是缓存区readbuf足够)
	//	cout << line++ << ": " << readbuf << endl;//这里需要添加换行符
	//	ofile << readbuf << endl;//这里需要添加换行符
	//	memset(readbuf, 0, sizeof(readbuf));
	//}

	//第三种读方式
	//string str;
	//while (getline(ifile, str)) {//使用标准库<string>中的getline()函数,按换行符读取(碰到换行符就跳过并暂停读取),不会忽略空白行
	//	cout << line++ << ": " << str << endl;//这里需要添加换行符
	//	ofile << str<<endl;//这里需要添加换行符
	//	memset(readbuf, 0, sizeof(readbuf));
	//}

	//第四种读方式
	//char c;
	//while ((c=ifile.get()) != EOF) {//使用标准库<ifstream>中的get()函数逐个读取文件的字符(会将换行符作为一个字符读取)
	//	cout << c;//这里不需要添加换行符
	//	ofile << c;//这里不需要添加换行符
	//}

	ifile.close();
	ofile.close();
}
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 12:02:03  更:2022-01-28 12:03:14 
 
开发: 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 12:30:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码