1.seekg:
作用:设置输入流的位置
参数 1: 偏移量
参数 2: 相对位置
beg :相对于开始位置
cur: 相对于当前位置
end:相对于结束位置
#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
using namespace std;
//设置输入流的位置:
int main() {
ifstream iffile;
iffile.open("users.txt");
if (!iffile.is_open()) {
cout << "打开失败!" << endl;
return 1;
}
iffile.seekg(-10,iffile.end);
while (!iffile.eof()) {
string line;
getline(iffile,line);
cout << line << endl;
}
iffile.close();
system("pause");
return 0;
}
2.tellg:
#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
using namespace std;
//返回该输入流的当前位置(距离文件的起始位置的偏移量)
//获取当前文件的长度:
int main() {
ifstream iffile;
iffile.open("源.cpp");
if (!iffile.is_open()) {
return 1;
}
//先把文件指针移动到文件尾
iffile.seekg(0,iffile.end);
int len = iffile.tellg();
cout << "len:" << len << endl;
iffile.close();
system("pause");
return 0;
}
3.seekp:
#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
using namespace std;
//设置输出流的位置:
/*demo
先向新文件写入:“123456789”
然后再在第 4 个字符位置写入“ABC”*/
int main() {
ofstream outfile;
outfile.open("test.txt");
if (!outfile.is_open()) {
return 1;
}
outfile << "123456789";
outfile.seekp(4,outfile.beg);
outfile << "ABC";
outfile.close();
system("pause");
return 0;
}