【C++】標準檔案的輸入輸出!!!
在C++裡面的IO都是以流的形式存在的,所以在對檔案進行操作的時候也是以流的形式操作的。
主要的流:ifstream、ofstream、fstream,都包含於fstream標頭檔案裡面。
ifstream:從記憶體將檔案資料讀在硬碟
ofstream:從硬碟將檔案資料讀到記憶體
fstream:可以對開啟的檔案進行讀寫操作
ofstream的繼承關係
ifstream的繼承關係
開啟檔案
開啟檔案是通過open函式實現的,函式原型void open ( const char * filename, ios_base::openmode mode = ios_base::out );
引數:
filename:需要開啟檔案的名稱
mode:開啟檔案的方式
常用的mode:
ios::app:以追加的形式開啟
ios::ate:開啟檔案後定位帶檔案尾
ios::binary:以二進位制的形式開啟檔案
ios::in:以輸入的形式開啟檔案
ios::out:以輸出的形式開啟檔案
ios::nocreate:不建立新的檔案,即如果開啟的檔案不存在時候就會報錯
ios::noreplace:不替換檔案,即只能開啟已存在的檔案,如果檔案不存在就會報錯
ios::trunc:如果開啟的檔案存在,就將檔案的長度階段為0
注:這些mode可以並聯使用,如:ios::out | ios::trunc
關閉檔案
關閉檔案使用的函式是close,函式原型是:void close ( );
當開啟的檔案使用結束後,需要將開啟的檔案關閉。使用close函式可以將開啟的檔案以及相關聯的檔案關閉。
檔案的讀寫
在需要將將資料輸入到檔案裡面去的時候,可以使用<<來操作,當需要將檔案裡面的資料輸入到輸出流裡面的時候可以使用getline函式實現。
例如:
#include<iostream>
using namespace std;
#include<fstream>
int main(){
ofstream out("test.txt");
out<<"hello world"<<endl;
ifstream in;
in.open("test.txt");
char buf[1024];
while(!in.eof()){
in.getline(buf,100);
cout<<buf<<endl;
}
}
注:狀態標誌,eof表示是否到達檔案末尾
二進位制的檔案讀寫
寫操作採用write函式;函式原型:ostream& write ( const char* s , streamsize n );
這裡面的write函式是將s裡面的資料寫n個到輸出流物件開啟的檔案裡面去。
讀操作採用的是read函式,函式原型:istream& read ( char* s, streamsize n );
這裡的read函式是將輸出流物件開啟的檔案裡面的內容寫n個字元到s裡面去。
檔案定位
檔案定位使用的函式是seekg()和seekp();
seekp的函式原型:ostream& seekp ( streampos pos );
或者ostream& seekp ( streamoff off, ios_base::seekdir dir );
seekg的函式原型:istream& seekg ( streampos pos );
或者istream& seekg ( streamoff off, ios_base::seekdir dir );
、
off主要偏移量:
ios::beg:檔案開頭
ios::cur:檔案的當前位置
ios::end:檔案結尾
相關文章
- C++中的檔案輸入/輸出(4):檢測輸入/輸出的狀態標誌 (轉)C++
- Java —— 標準輸入輸出Java
- C++中的檔案輸入/輸出(3):掌握輸入/輸出流 (轉)C++
- python 標準輸入輸出Python
- Linux的標準輸入、標準輸出和標準錯誤Linux
- 接管子程式的標準輸入輸出
- C++中的檔案輸入/輸出(2):讀取檔案 (轉)C++
- 重定向子程式標準輸入輸出
- 排序,檔案輸入輸出排序
- 檔案操作-輸入輸出
- 第13周-閱讀專案1-標準輸入輸出物件及文字檔案物件
- C輸入輸出與檔案
- 【C++】輸入輸出C++
- python:檔案的輸入與輸出Python
- C++ 中輸入輸出流及檔案流操作筆記C++筆記
- C++中的檔案輸入/輸出(5):二進位制檔案的處理 (轉)C++
- java_檔案輸入與輸出Java
- 第10章 對檔案的輸入輸出
- C++中的檔案輸入/輸出(1):你的第一個程式 (轉)C++
- converter設計模式擴充套件,多種輸入輸出與標準輸入輸出的轉化方案設計模式套件
- c++入門:輸入輸出流C++
- 瞭解下C# 檔案的輸入與輸出C#
- [C++]輸入/輸出流類庫C++
- C++格式化輸入輸出C++
- Python進階02 文字檔案的輸入輸出Python
- 檔案輸入輸出處理(二)-位元組流
- Linux循序漸進(20):標準輸入/輸出和重定向(轉)Linux
- C語言的本質(24)——C標準庫之輸入與輸出(下)C語言
- 使用shell tee 命令顯示及儲存標準輸出及標準錯誤輸出
- 【Java基礎知識】IO流--標準輸入輸出流、列印流PrintStreamJava
- linux重定向標準錯誤與標準輸出到同一檔案Linux
- Linux 下的檔案管理&管理系統中的輸出輸入Linux
- Shell標準輸出、標準錯誤 >/dev/null 2>&1devNull
- c++builder中怎樣進行標準輸入、出C++UI
- 輸入輸出
- Python 快速教程(進階篇02):文字檔案的輸入輸出Python
- java截獲標準輸出(2)(轉)Java
- java截獲標準輸出(1)(轉)Java