当前位置: 首页 > news >正文

中国电力建设企业协会网站出格网站建设公司

中国电力建设企业协会网站,出格网站建设公司,vs和php哪个做网站好,校园网站建设价格fstream用于读写文件内容 ifstream用于读文件内容 ofstream用于写内容到文件 读本文章前,请读一下C 文件和流 | 菜鸟教程 目录 1. 打开文件open 2. 返回当前指针位置tellg, tellp 3. 设置文件读位置指针seekg 4. 设置文件写位置指针seekp 5. 如何在文件…

fstream用于读写文件内容

ifstream用于读文件内容

ofstream用于写内容到文件

读本文章前,请读一下C++ 文件和流 | 菜鸟教程

目录

1. 打开文件open

2.  返回当前指针位置tellg, tellp

3.  设置文件读位置指针seekg

4.  设置文件写位置指针seekp

5. 如何在文件的倒数第二行末尾插入数据


1. 打开文件open

#include <iostream>  
#include <fstream>fstream ooStream;
ooStream.open("file.json", ios::out | ios::in);
if (!ooStream.is_open()) {//文件打开失败ALOGD("Can not open file");
} else {//文件打开成功ALOGD("open sccuess!");
}
ooStream.close();

open函数如下

void open(const char *filename, ios::openmode mode);

mode有以下几种类型

ios::in    = 0x01, //供读,文件不存在则创建(ifstream默认的打开方式)
ios::out    = 0x02, //供写,文件不存在则创建,若文件已存在则清空原内容(ofstream默认的打开方式)
ios::ate    = 0x04, //文件打开时,指针在文件最后。可改变指针的位置,常和in、out联合使用
ios::app    = 0x08, //供写,文件不存在则创建,若文件已存在则在原文件内容后写入 新的内容,指针位置总在最后
ios::trunc   = 0x10, // 在读写前先将文件长度截断为0(默认)
ios::nocreate = 0x20, //文件不存在时产生错误,常和in或app联合使用
ios::noreplace = 0x40, //文件存在时产生错误,常和out联合使用
ios::binary  = 0x80  //二进制格式文件

2.  返回当前指针位置tellg, tellp

g --- get

p --- put

tellg 和 tellp 函数不需要带参数,它返回当前定位指针的位置,也代表着输入流的大小.

3.  设置文件读位置指针seekg

g --- get

// 定位到 ooStream的第 n 个字节(假设是 ios::beg)
ooStream.seekg(n);

// 定位到 ooStream的开头
ooStream.seekg( 0, ios::beg);

// 把文件的读指针从 ooStream开头向后移 n 个字节
ooStream.seekg( n, ios::beg);
 
// 把文件的读指针从 ooStream当前位置cur向后移 n 个字节
ooStream.seekg( n, ios::cur );
 
// 把文件的读指针从 ooStream末尾往前移 n 个字节
ooStream.seekg( n, ios::end );
 
// 定位到 ooStream的末尾
ooStream.seekg( 0, ios::end );

4.  设置文件写位置指针seekp

p --- put

// 定位到 ooStream的第 n 个字节(假设是 ios::beg)
ooStream.seekp(n);

// 把文件的写指针从 ooStream开头向后移 n 个字节
ooStream.seekp( n, ios::beg);

// 把文件的写指针从 ooStream末尾往前移 n 个字节
ooStream.seekp( n, ios::end );

5. 如何在文件的倒数第二行末尾插入数据

    网上很多方法,都是先读取文件所有内容,保存到一个list中,再在list倒数第二行新增数据,再将这个新的list作为新的内容写入到另一个新文件中,这对于大文件操作时很不友好,影响系统性能。

请注意如果使用seekp写入数据到文件时,写入的数据会覆盖后面的内容。

这适合最后一行规固定的,如果还需要最后一行,那就每次再将最后一行的内容再写入文件即可。

void writeDataToFile() {fstream ooStream;//由于是插入到指定位置,所以此处不能是ios::appooStream.open("file.json", ios::out | ios::in);if (!ooStream.is_open()) {//文件打开失败ALOGD("Can not open file");return;} else {ALOGD("open sccuess!");}//将文件读指针定位到文件末尾,假设文件末尾没有\nooStream.seekg(0, ios::end);//获取文件大小std::streampos fileSize = ooStream.tellp();long pos = (long)fileSize;while (pos > 0) {//每次减1,往前移动,寻找\nooStream.seekg(--pos);char c;//获取ooStream当前的字符是什么ooStream.get(c);//判断ooStream当前的字符是否是回车符if (c == '\n') {//是回车符,则退出循环,这就到了倒数第二行的末尾,注意倒数第一行没有回车符break;}}//将文件的写指针定位到pos,即第二行文件末尾ooStream.seekp(pos);//写数据ooStream << "write data";//关闭文件流ooStream.close();
}

http://www.yayakq.cn/news/560930/

相关文章:

  • 江西网站制作公司直播电商的发展趋势
  • 网站建设的初步预算自助建站软件下载
  • 无锡网站建设公司怎么样会员管理系统哪个好用
  • 河北邯郸中考成绩查询网站外贸网站怎么做优化
  • 深圳网站建设知名公司网页设计学习内容
  • 无锡高端网站开发345诛仙网站是谁做的
  • 活动网站怎么建设网络服务器价格
  • 做网站页面多少钱成都推广公司联系电话
  • 淘客网站开发公司企业品牌网站建设注意事项
  • 商务局网站溪江农贸市场建设如何查公司注册信息及法人
  • 推广网站优化怎么做网站首页的布局
  • 网站备案个人使用商城网站建设报价表
  • 网站推广公司电话seo搜索优化工具
  • 阜阳做网站制作网站需要什么语言
  • 四川中天建设有限公司网站建筑工程完工后移交情况说明
  • dedecms5.7装饰网站模板wordpress模块里加载最新文章
  • 会展门户网站源码万网域名注册官网中文域名
  • 网站维护一般需要多久装修网公司装修
  • 山西做网站哪个好米粒网站建设
  • 建设购物网站论文触屏版网站源码
  • 网站后台需求网站的维护怎么做
  • 河南如何做网站三金网手机网站
  • 如何查看网站的更新频率宝安做棋牌网站建设哪家好
  • 太原做企业网站的做链接哪个网站好
  • 地理云门户网站建设怎样更新网站文章
  • 网站建设夬金手指排名壹柒做塑胶原料用什么网站好
  • 网站推广模板简述网站开发平台及常用开发工具
  • seo一个空间建多个网站营销型网站有意义吗
  • 建设网站的方法企业网站怎么建立
  • 概述网站建设的流程上海网站快速排名