c++ fstream feekg讨论
2024-10-20 04:05:33
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
std::ifstream fp;
fp.open(/*filename.c_str()*/"aa.txt", std::ios::in | std::ios::binary); .seekg(0,FILE_END); streampos filesize = fp.tellg();
char* str = new char[10]; if (fp.seekg(10))
{
streampos size = fp.tellg();
cout << size<<endl;
} if (fp.seekg((DWORD)filesize +10))
{
streampos size = fp.tellg(); //能够读取出来数据
cout << size<<endl;
if (fp.getline(str, 10))
{
cout << "getline" << endl; //失败,没有进入,不能读取
}
if (fp.fail())
{
cout << "fp.fail()" << endl; //能够进入
}
if (fp.bad())
{
cout << "bad" << endl; //不进入
}
}
delete[] str;
return 0;
}
结果:
结论:
在c++ 流文件中,seekg可以越界,需要通过fail()来判断。
不过在越界后,不能成功读取到数据,所以在读取数据前需要判断。
最新文章
- Struts2 Action扩展名的三种修改方法
- linux 系统下,如何清空文件内容
- python网站收集
- Orchard官方文档翻译(四) 让Orchard在WebMatrix下工作
- Centos环境下部署游戏服务器-常用命令
- 通过ModuleImplAdvertisement向自定义服务传递参数
- linux ps查看进程命令
- C#_C++_SDK_WM_KEYDOWN人物卡顿延迟解决方法
- oracle语句总结(一)
- 理解Babel是如何编译JS代码的及理解抽象语法树(AST)
- 【转】shell字符串截取
- 2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 20165215
- echarts-五分钟的教程
- linux常用命令 运算命令
- Python简单语音识别并响应
- commons-text 生成指定长度的随机字符串
- Oracle只读用户角色的建立
- tf.nn.dynamic_rnn
- Android组件化方案
- Scala + Thrift+ Zookeeper+Flume+Kafka配置笔记