获取流位置

– tellg() / tellp() 可以用于获取输入 / 输出流位置 (pos_type 类型 )
– 两个方法可能会失败,此时返回 pos_type(-1)

**tellp()**返回当前关联的 streambuf 对象的输出位置指示器。
若出现失败则为 pos_type(-1) 。

示例:

#include <iostream>
#include <sstream>
int main()
{std::ostringstream s;std::cout << s.tellp() << '\n';s << 'h';std::cout << s.tellp() << '\n';s << "ello, world ";std::cout << s.tellp() << '\n';s << 3.14 << '\n';std::cout << s.tellp() << '\n' << s.str();
}

输出:

0
1
13
18
hello, world 3.14

tellg()返回当前关联的 streambuf 对象的输入位置指示器。
成功时为获取指针的当前位置,失败时为 pos_type(-1) 。

示例:

#include <iostream>
#include <string>
#include <sstream>int main()
{std::string str = "Hello, world";std::istringstream in(str);std::string word;in >> word;std::cout << "After reading the word \"" << word<< "\" tellg() returns " << in.tellg() << '\n';
}

输出:

After reading the word "Hello," tellg() returns 6

设置流位置

– seekg() / seekp() 用于设置输入 / 输出流的位置
– 这两个方法分别有两个重载版本:
● 设置绝对位置:传入 pos_type 进行设置
● 设置相对位置:通过偏移量(字符个数 ios_base::beg ) + 流位置符号的方式设置
– ios_base::beg
– ios_base::cur
– ios_base::end
参数
pos - 设置输入位置指示器到的绝对位置。
off - 设置输入位置指示器到的相对位置。
dir - 定义应用相对偏移到的基位置。它能为下列常量之一:
常量 解释
beg 流的开始
end 流的结尾
cur 流位置指示器的当前位置

示例:
basic_istream& seekg( pos_type pos );
basic_istream& seekg( off_type off, std::ios_base::seekdir dir);

#include <iostream>
#include <string>
#include <sstream>int main()
{std::string str = "Hello, world";std::istringstream in(str);std::string word1, word2;in >> word1;in.seekg(0); // 回溯in >> word2;std::cout << "word1 = " << word1 << '\n'<< "word2 = " << word2 << '\n';
}

输出:

word1 = Hello,
word2 = Hello,

basic_ostream& seekp( pos_type pos );
basic_ostream& seekp( off_type off, std::ios_base::seekdir dir );

示例:

#include <sstream>
#include <iostream>int main()
{std::ostringstream os("hello, world");os.seekp(7);os << 'W';os.seekp(0, std::ios_base::end);os << '!';os.seekp(0);os << 'H';std::cout << os.str() << '\n';
}

输出:

Hello, World!

流的定位tellg() / tellp()、seekg() / seekp()相关推荐

  1. C++基础(四) 文件流 I/O流 文件指针 tellg tellp seekp seekg

    C++中的有关文件的设计,由于历史原因,着实不太好用,里面的坑很多. 一.常见文件打开方式 文件模式常量含义 常量 含义 ios_base::in 以读的方式打开文件 ios_base::out 以写 ...

  2. seekg()/seekp()与tellg()/tellp()的用法详解

    转自mafuli007的博客 对输入流操作:seekg()与tellg() 对输出流操作:seekp()与tellp() 下面以输入流函数为例介绍用法: seekg()是对输入文件定位,它有两个参数: ...

  3. Linux学习——流刷新定位、格式化输入和输出

    目录 一.流的刷新 二.流的定位: fseek 参数whence参数:SEEK_SET/SEEK_CUR/SEEK_END 注意事项: 三.格式化输出 四.格式化输入 五. 标准IO练习题 程序: 结 ...

  4. c语言switch瀑布流,两种常见飞瀑流(定位的瀑布流与浮动的瀑布流)

    两种常见瀑布流(定位的瀑布流与浮动的瀑布流) 类似蘑菇街,美丽说网站的瀑布流 1.定位的瀑布流: window.onload = function(){ var aLi = document.getE ...

  5. C++文本文件,二进制文件,write(),read(),map容器,seekg(),seekp(),tellg(),tellp()函数

    #include<fstream> 一:文本文件 1.ofstream和ifstream数据类型 文本文件 ofstream f1;//该数据类型表示输出文件流,用于创建并向文件中写入信息 ...

  6. C++之tellg和seekg

    long   pos   =   file.tellg();   //   得到文件指针当前指向的文件位置. file.seekg(0,ios::beg);   //让文件指针定位到文件开头 file ...

  7. html的浮动跟标准流,网页布局的 标准流 浮动流 与 定位流

    一 网页布局方式 #1.什么是网页布局方式 布局可以理解为排版,我们所熟知的文本编辑类工具都有自己的排版方式,比如word,nodpad 等等 而网页的布局方式指的就是浏览器这款工具是如何对网页中的元 ...

  8. CSS静态布局——常规流,定位,浮动。

    合理的网页布局方式 合理的网页布局可以使网页内容以整洁有序的方式展示给用户.凌乱的布局则会使网页的信息无法正确传达,用户的目的没有达到等问题. 合理的网页布局应有: 1.合理地把页面切分为多个具有具体 ...

  9. 脱离标准流(2)定位

    标准流里面的限制非常多,导致很多页面效果无法实现.如果我们现在就要并排.并且就要设置宽高,那该怎么办呢?办法是:移民!脱离标准流! css中一共有三种手段,使一个元素脱离标准文档流: (1)浮动 (2 ...

最新文章

  1. ATS 5.3.0缓存架构
  2. Bloomberg开源面向OCaml的JavaScript后端BuckleScript
  3. 大有乾坤,售前机器人背后的 AI 技术
  4. 【撸码师登云梯】google
  5. 印第安人的灵魂——敏捷回顾
  6. linux gcc 静态编译,GCC 程序编译的静态链接和动态链接
  7. C++回调函数用法(zt)
  8. BZOJ 4706: B君的多边形 找规律
  9. 《C语言程序设计》第三章练习与习题答案
  10. 互联网日报 | 5月4日 星期二 | 水滴公司启动上市路演;蔚来汽车累计交付量突破10万里程碑;巴菲特透露接班人选
  11. Visio绘制电路图
  12. 小米一键上锁工具_便宜好用:小米智能门锁E 上手体验报告
  13. linux系统下的打印机驱动下载,foo2zjs linux环境下打印机驱动源代码 - 下载 - 搜珍网...
  14. 性能测试工具iPerf和Netperf使用介绍
  15. FC6000蒸汽气体热水液体智能流量积算仪特点
  16. 布隆过滤器在HBase中的应用
  17. java web安全框架_7.1 SpringSecurity安全框架
  18. C语言复杂构造数据类型ppt,复杂构造数据类型.ppt
  19. 图解HTTP四:返回结果的 HTTP 状态码
  20. 汽车电子功能安全标准ISO26262解析(一)——总述部分

热门文章

  1. TCP/IP协议分层图 2021-04-02
  2. qtextedit固定内容_QTextEdit详细操作
  3. 华为5731交换机设置telnet登录
  4. 形式语言和自动机总结---PDA下推自动机
  5. Kubelet v1.25.x源码——ImageManager
  6. 纳米镜系列文章|闲鱼如何快速仿真运营活动效果?
  7. 数据分析笔记--matplotlib(二) 解决关于x,y轴不为数字的情形和中文显示实例
  8. 和领导提了离职,结果他马上给我涨薪,还承诺明年晋升,该不该留下?
  9. 基于VMware创建虚拟机以及安装虚拟机系统
  10. 你的Windows 7或Windows Vista安装“系统更新准备工具(KB947821)”了吗?