您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關C++中怎么利用std::fstream處理文件,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
1.使用open()和close()打開和關閉文件
(1)要使用fstream類,需要使用open()打開文件
fstream myFile; //實例化一個文件對象myFile.open("firstFile.txt", ios_base::in | ios_base::out | ios_base::trunc); //打開文件firstFile.txt,可選擇三種模式if(mfFile.is_open()) //檢測open()是否成功{ Dosomething(); //讀或寫操作 myFile.close(); //關閉文件流以保存其內容,這一步不能忘}
open(“文件名的路徑和名稱”, ios_base::in | ios_base::out | ios_base::trunc)
第一個參數:是要打開文件的路徑和名稱(若沒有提供路徑,默認為應用程序的當前目錄)
第二個參數:是文件的打開模式。ios_base::in(可讀取文件)、ios_base::out(可寫入文件)、ios_base::trunc(即便指定的文件存在,也重新創建它)
(2)除了使用open()打開文件,還可以使用fstream類的構造函數打開文件
//使用構造函數打開文件fstream myFile("firstFile.txt", ios_base::in | ios_base::out | ios_base::trunc); //如果只想打開文件進行寫入ofstream myFile("firstFile.txt", ios_base::out);//如果只想打開文件進行讀取ifstream myFile("firstFile.txt", ios_base::in);
注意:無論是使用成員方法open()還是構造函數來打開文件流,都建議在使用文件流對象前,使用is_open()檢查文件打開操作是否成功。
下面將演示使用ofstream新建一個文本文件并向其中寫入文本:
#include <fstream>#include <iostream>using namespace std;int main(){ ofstream myFile; myFile.open("firstFile.txt", ios_base::out); //以只寫模式打開文件if(myFile.is_open()){ cout<<"File open successful"<<endl;//使用運算符<<寫入文件 myFile<<"Hello File!"<<endl; myFile<<"Writing in file"; myFile.close(); //關閉文件以保存其內容}return 0;}
注:程序表明寫入文件的方式與使用cout寫入到標準輸出的方式相同,都采用運算符<<。
要讀取文件,使用fstream或者ifstream,并使用標志ios_base::in打開它。下面將演示如何從已有的文件firstFile中讀取文本:
#include <fstream>#include <iostream>#include <string>using namespace std;int main(){ ifstream myFile; myFile.open("firstFile", ios_base::in);if(myFile.is_open()){ cout<<"文件打開成功!文件中包含以下內容:"<<endl; string fileContents;while(myFile.good()) //判斷當前流的狀態是否正常。即當讀到文件末尾時,自動跳出循環。{ getline(myFile, fileContents); //每次從文件中讀取一行 cout<<fileContents<<endl;} myFile.close();}else cout<<"打開文件失敗,檢查文件是否在正確的目錄下!"<<endl;return 0;}
關于C++中怎么利用std::fstream處理文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。