【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:檔案結尾
相關文章
- Java —— 標準輸入輸出Java
- python 標準輸入輸出Python
- C++名稱空間、標準輸入輸出、引用C++
- Linux的標準輸入、標準輸出和標準錯誤Linux
- 排序,檔案輸入輸出排序
- python:檔案的輸入與輸出Python
- 【C++】輸入輸出C++
- 第10章 對檔案的輸入輸出
- converter設計模式擴充套件,多種輸入輸出與標準輸入輸出的轉化方案設計模式套件
- 瞭解下C# 檔案的輸入與輸出C#
- 檔案輸入輸出處理(二)-位元組流
- Linux 下的檔案管理&管理系統中的輸出輸入Linux
- 指令碼日誌的標準輸出指令碼
- C++輸入輸出常用格式(cin,cout,stringstream)C++
- 015 Linux 標準輸入輸出、重定向、管道和後臺啟動程式命令Linux
- 標準的位元組輸出流 & 如何用它寫一篇日誌檔案
- C++ 學習筆記之——輸入和輸出C++筆記
- 分治法求眾數和重數(含檔案輸入輸出)
- 使用Java NIO 和 NIO2實現檔案輸入/輸出Java
- 輸入輸出
- 標準化/結構化 JSON 輸出JSON
- Pr入門教程標準模板的使用方法及完成輸出
- 專案整合管理主要輸入、工具、輸出
- linux中的輸入與輸出管理(重定向輸入,輸出,管道符)Linux
- 第九章:輸入/輸出流與檔案操作 習題
- 資料的輸入輸出
- Mybatis配置檔案中Select元素標籤輸入引數有多少種輸入方式呢?MyBatis
- 輸入輸出流
- JDK 18 及以上使用標準輸出流中文輸出亂碼問題JDK
- 檔案輸入和輸入出處理(六)-序列化和反序列化
- Go基礎系列:讀取標準輸入Go
- MySQL輸出html格式檔案MySqlHTML
- C++ 資料輸入cin (解決CLoin輸入中文程式出錯)C++
- 怎麼提高go讀取標準輸入的速度Go
- 用指標編寫程式將輸入的字串倒序輸出指標字串
- ACM的Python版輸入輸出ACMPython
- Java 輸入輸出流Java
- 1.輸入輸出
- 輸入輸出系統