目录
1.seekg
2.tellg
3.seekup
.seekg(off_type offset, //偏移量
ios::seekdir orgin); //起始位置
参数1:偏移量
参数2:起始位置
bge 相对于开始位置
cur 相对于当前位置
end 相对于结束位置
#include<fstream> #include<iostream> #include<string> using namespace std; int main() { ifstream ifs; ifs. open("源.cpp"); if (!ifs.is_open()) { return 1; } ifs.seekg(-50, ifs.end); //设置输出流位置 string line; while (!ifs.eof()) { getline(ifs, line); cout << line << endl; } ifs.close(); system("pause"); return 0; }
.tellg
返回该输入流当前位置
#include<fstream> #include<iostream> #include<string> using namespace std; int main() { ifstream ifs; ifs. open("源.cpp"); if (!ifs.is_open()) { return 1; } //先把文件指针移到尾部,放回当前流位置 ifs.seekg(0, ifs.end); int lenth = ifs.tellg(); cout << "文件长度为:" << lenth << endl; ifs.close(); system("pause"); return 0; }
向新文件写入“12345678”,然后在第四个字符位置写入”ABC“
#include<fstream> #include<iostream> #include<string> using namespace std; int main() { ofstream ofs; ofs.open("test.txt"); if(!ofs.is_open()) { return 1; } ofs << "12345678"; ofs.seekp(4, ofs.beg); //设置输入流位置 ofs << "ABC"; ofs.close(); ifstream ifs; ifs.open("test.txt"); if (!ifs.is_open()) { return 1; } string line; getline(ifs, line); cout << line << endl; ifs.close(); system("pause"); return 0; }