fstream之seekp/seekg/ios::ate/ios::app
生活随笔
收集整理的這篇文章主要介紹了
fstream之seekp/seekg/ios::ate/ios::app
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在程序開發中,IO處理無處不在,經常會在代碼中遇到特殊的IO處理需求
1、描述
需求:如果文件不存在則創建,存在則打開,然后先讀取文件的末行,然后在文件末尾寫入。
代碼:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(int argc, char **argv)
{
fstream fst;
string strTemp;
fst.open("test3", ios::in | ios::out);
//fst.seekp(0, fstream::beg);
while (!fst.eof())
{
getline(fst, strTemp);
cout << strTemp << endl;
}
cout << strTemp;
fst.seekg(0, fstream::end);
fst << "
hhfdsfds";
fst.close();
return 0;
}
因為fstream對象是作為讀寫同時打開的,在讀和寫轉換之間,會使流失效,這個具體還要去參考《標準C++輸入輸出流與本地化》這本書。
2、ios::ate/ios::app的區別
ios::ate是使文件打開時將文件讀取位置移動到文件尾
ios::app是打開文件并在文件尾部添加數據
3、seekp/seekg的區別
seekp是指設置輸入流的文件讀取位置,對應讀取輸入流的文件讀取位置為tellp
seekg是指設置輸出流的文件插入位置,對應讀取輸出流的文件插入位置為tellg
總結
以上是生活随笔為你收集整理的fstream之seekp/seekg/ios::ate/ios::app的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第十三天-迭代器、三元表达、字典生成式、
- 下一篇: Linux 使用 yum 查看安装的软件