C++文件讀入和寫出總結筆記

一、寫文件

#include <fstream>
ofstream ofs;//創建流對象
ofs.open(path,打開方式);//指定路徑和打開方式
//打開方式:
// ios::in 讀文件打開
// ios::out 寫文件打開
// ios::ate 從文件尾打開
// ios::app 追加方式打開
// ios::trunc 如已有文件,先刪除文件
// ios::binary 二進制方式
// ios::nocreate 打開文件時,如果文件不存在,不創建文件
// ios::noreplace 打開文件時,如果文件不存在,創建該文件
// ios::trunc 打開文件,然後清空內容
string name="張三丰"
double age=100;
bool male=1;
ofs<<name<<" "<<age<<" "<<male;//寫入內容
ofs.close();//關閉文件

二、讀文件

#include <fstream>

ifstream ifs;
ifs.open(path,打開方式)
//打開方式:
// ios::in 讀文件打開
// ios::out 寫文件打開
// ios::ate 從文件尾打開
// ios::app 追加方式打開
// ios::trunc 如已有文件,先刪除文件
// ios::binary 二進制方式
// ios::nocreate 打開文件時,如果文件不存在,不創建文件
// ios::noreplace 打開文件時,如果文件不存在,創建該文件
// ios::trunc 打開文件,然後清空內容
if(!ifs.is_open())
{
	cout<<"打開文件失敗!"<<endl;
	return;
}
//讀數據 四種方式
//方式一
char buf[100]={0};
while(ifs>>buf)
{
	cout<<buf<<endl;
}
//方式二
char buf[100]={0};
while(ifs.getline(buf,sizeof(buf)))
{cout<<buf<<endl;}

//方式三
string buf;
while(getline(ifs,buf))
{
	cout<<buf<<endl;
}

//方式四,不推薦
char c;
while((c==ifs.get())!=EOF)
{
	cout<<c;
}
ifs.close();//關閉流

三、文件指針補充內容

  • 文件指針位置在c++中的用法:
     ios::beg   文件頭
     ios::end   文件尾
     ios::cur   當前位置
  • 舉個例子:
     file.seekg(0,ios::beg);   //讓文件指針定位到文件開頭 
     file.seekg(0,ios::end);   //讓文件指針定位到文件末尾 
     file.seekg(10,ios::cur);   //讓文件指針從當前位置向文件末方向移動10個字節 
    file.seekg(-10,ios::cur);   //讓文件指針從當前位置向文件開始方向移動10個字節 
     file.seekg(10,ios::beg);   //讓文件指針定位到離文件開頭10個字節的位置

注意:移動的單位是字節,而不是行。

  • 常用的錯誤判斷方法:
    good()   如果文件打開成功
    bad()   打開文件時發生錯誤
    eof()    到達文件尾

四、補充內容

FILE這個結構包含了文件操作的基本屬性,對文件的操作都要通過這個結構的指針來進行,此種文件操作常用的函數見下表 函數 功能

  fopen() 打開流 
  fclose() 關閉流 
  fputc() 寫一個字符到流中 
  fgetc() 從流中讀一個字符 
  fseek() 在流中定位到指定的字符 
  fputs() 寫字符串到流 
  fgets() 從流中讀一行或指定個字符 
  fprintf() 按格式輸出到流 
  fscanf() 從流中按格式讀取 
  feof() 到達文件尾時返回真值 
  ferror() 發生錯誤時返回其值 
  rewind() 復位文件定位器到文件開始處 
  remove() 刪除文件 
  fread() 從流中讀指定個數的字符 
  fwrite() 向流中寫指定個數的字符 
  tmpfile() 生成一個臨時文件流 
  tmpnam() 生成一個唯一的文件名

二、直接I/O文件操作
  這是C提供的另一種文件操作,它是通過直接存/取文件來完成對文件的處理,而上篇所說流式文件操作是通過緩衝區來進行;流式文件操作是圍繞一個FILE指針來進行,而此類文件操作是圍繞一個文件的"句柄"來進行,什麼是句柄呢?它是一個整數,是系統用來標識一個文件(在WINDOWS中,句柄的概念擴展到所有設備資源的標識)的唯一的記號。此類文件操作常用的函數如下表,這些函數及其所用的一些符號在io.h和fcntl.h中定義,在使用時要加入相應的頭文件。
  函數 說明

  open() 打開一個文件並返回它的句柄 
  close() 關閉一個句柄 
  lseek() 定位到文件的指定位置 
  read() 塊讀文件 
  write() 塊寫文件 
  eof() 測試文件是否結束 
  filelength() 取得文件長度 
  rename() 重命名文件 
  chsize() 改變文件長度

以上內容,參考自如下幾個鏈接,侵刪!
1
2
3

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章