c++中的文件處理是什麼?
c++中的文件處理是一種將程序的輸出存儲在文件中並幫助對其執行各種操作的機製。文件有助於將這些數據永久地存儲在存儲設備上。
術語“數據”通常指的是已知的事實或信息。在當今時代,數據扮演著至關重要的角色。它有助於描述、診斷、預測或開出處方。但要實現這一切,我們需要把它存儲在某個地方。你們可能會說現在有很多像“記事本”和“Office”這樣的文本編輯器,它們幫助我們以文本的形式存儲數據。你是對的!但我們在這裏討論的是編程的層麵。相比之下,像“記事本”和“MS Office”這樣的文本編輯器是預先構建的,不能在編程級別訪問以存儲數據。當涉及到存儲此類編程數據時,文件處理是一個熱門話題。
幾乎每一種編程語言都有一個“文件處理”方法來處理數據的存儲。在本文中,我們將學習c++中的文件處理。但是,在此之前,如果你是c++的新手,你可以看看這個c++的免費課程學習基礎知識。
現在,這個文件處理的主題被進一步劃分為子主題:
- 創建一個文件
- 打開一個文件
- 從文件中讀取
- 寫入文件
- 關閉一個文件
fstream圖書館
在深入研究每個子主題之前,讓我們先了解一下用於訪問文件處理方法的頭文件。在c++中,fstream庫是用來處理文件的,它是在ofstream、ifstream和fstream三個類的幫助下處理的。
ofstream:
該類幫助創建數據並將其寫入從程序輸出獲得的文件。它也被稱為輸入流。
ifstream:
我們使用這個類從文件讀取數據,也稱為輸入流。
fstream:
這個類是ofstream和ifstream的結合。它提供了創建、寫入和讀取文件的功能。
要訪問下麵的類,你必須包含fstream作為頭文件,就像我們在頭文件中聲明iostream一樣。
例子:
# include < iostream > # include < fstream >
在包含頭文件之後,出現了一個問題,即我們需要在程序中創建文件還是需要使用現有的文件。但這並不難回答,因為在c++中,我們有四種不同的方法來處理文件。讓我們逐一討論。
c++中的文件操作
c++為我們提供了四種不同的文件處理操作。它們是:
- open ()—用於創建文件。
- read (),這用於從文件中讀取數據。
- write (),這用於將新數據寫入文件。
- close (),這用於關閉文件。
我們將逐一研究這些問題,並試圖更好地理解它們。
用c++打開文件
要讀取或輸入數據到一個文件,我們需要首先打開它。這可以在' ifstream '讀取和' fstream '或' ofstream '寫入或追加到文件的幫助下執行。這三個對象都預先內置了open()函數。
語法:
open(FileName, Mode);
在這裏:
FileName -它表示要打開的文件的名稱。
模式——有不同的打開文件的模式,並在本文中進行了解釋。
模式 | 描述 |
iso:: | 以讀取模式打開的文件 |
iso:: | 以寫模式打開的文件 |
iso:應用程序 | 以附加模式打開的文件 |
iso:吃 | 以追加模式打開的文件,但在文件末尾執行的讀寫操作。 |
iso:二進製 | 以二進製模式打開的文件 |
iso: trunc | 以截斷模式打開的文件 |
iso: nocreate | 文件隻有在存在時才會打開 |
iso: noreplace | 文件隻有在不存在時才會打開 |
在c++中,我們可以通過| (OR)操作符同時使用兩種模式。
文件打開程序:
#include;int main(){fstream FileName;文件名。打開(“文件名”,ios::);if (!FileName){cout<<"創建文件時出錯";} else{cout<<"文件創建成功";FileName.close ();}返回0;}
以上代碼解釋
- 這裏我們有一個iostream庫,它負責輸入/輸出流。
- 我們還有一個fstream庫,它負責處理文件。
- 創建一個fstream類的對象並命名為“FileName”。
- 在上麵創建的對象上,我們必須應用open()函數來創建一個新文件,並且模式被設置為' out ',這將允許我們寫入文件。
- 我們使用' if '語句來檢查文件的創建。
- 如果文件不存在,則將消息打印到控製台。
- 如果文件存在/已創建,則將消息打印到控製台。
- 我們在對象上使用close()函數來關閉文件。
輸出
文件創建成功
寫入文件
到目前為止,我們學習了如何使用c++創建文件。現在,我們將學習如何將數據寫入我們之前創建的文件。我們將使用fstream或ofstream對象將數據寫入文件,並這樣做;我們將使用流插入操作符(<<)以及包含在雙引號中的文本。
在open()函數的幫助下,我們將創建一個名為' FileName '的新文件,然後將模式設置為' ios::out ',因為我們必須將數據寫入文件。
語法:
文件名<<"在此插入文本";
寫入文件的程序:
#include;int main() {fstream FileName;FileName.open(“FileName.txt”,ios::);if (!FileName) {cout<<"創建文件時出錯";} else {cout<<"文件已創建,數據已寫入文件";FileName<<"這是一個關於偉大學習的博客";beplay2018官网FileName.close ();}返回0;}
以上代碼解釋
- 這裏我們有一個iostream庫,它負責輸入/輸出流。
- 我們還有一個fstream庫,它負責處理文件。
- 創建一個fstream類的對象並命名為“FileName”。
- 在上麵創建的對象上,我們必須應用open()函數來創建一個新文件,並且模式被設置為' out ',這將允許我們寫入文件。
- 我們使用' if '語句來檢查文件的創建。
- 如果文件不存在,則將消息打印到控製台。
- 如果文件存在/已創建,則將消息打印到控製台。
- 將數據寫入創建的文件。
- 我們在對象上使用close()函數來關閉文件。
輸出
創建文件並將數據寫入文件
讀取文件在c++中
從文件中獲取數據是一件非常重要的事情,因為如果得不到數據,我們就不能執行任何任務。但是不要擔心,c++也提供了這種選擇。我們可以使用CIN從文件中讀取數據,以從用戶獲得數據,但然後我們使用CIN從用戶的標準控製台獲取輸入。這裏我們將使用fstream或ifstream。
語法:
文件名> >變量;
FileName.txt內容:
你好,世界,感謝您訪問偉大的學習。beplay2018官网
從文件讀取程序:
#include;int main() {fstream FileName;FileName.open(“FileName.txt”,ios:);if (!FileName) {cout<<"文件不存在";} else {char x;while (1) {FileName>>x;如果(FileName.eof())休息;cout < < x;}} FileName.close ();返回0; }
以上代碼解釋
- 這裏我們有一個iostream庫,它負責輸入/輸出流。
- 我們還有一個fstream庫,它負責處理文件。
- 創建一個fstream類的對象,命名為FileName。
- 在上麵創建的對象上,我們必須應用open()函數來創建一個新文件,並且模式被設置為' in ',這將允許我們從文件中讀取。
- 我們使用' if '語句來檢查文件的創建。
- 如果文件不存在,則將消息打印到控製台。
- 創建一個名為x的字符(char)變量。
- 在while循環的幫助下迭代文件。
- 獲取文件數據到變量x。
- 這裏我們使用了if條件和eof(),它代表文件的末尾,告訴編譯器讀到文件的末尾。
- 我們使用' break '語句在文件讀取結束時停止讀取。
- print語句打印變量x中可用的內容。
- 我們在對象上使用close()函數來關閉文件
輸出
你好,世界,感謝您訪問偉大的學習。beplay2018官网
Infile c++
我們還可以使用inFile從文件中讀取。在這裏,inFile > >年代
接收文件流,這是您的文件數據,並使用空格分隔符(用空格分隔),然後將內容放入變量S中。
例子:
如果我們有一個包含數據的文件:
“我的貓餓了”
我們在這裏使用inFile >> S,即:
ifstream inFile("file.txt")字符串;while(inFile >> words) {cout << words << endl;}
我們將得到輸出:
我的
貓
是
餓了
的inFile > >
單詞將繼續返回' true ',直到不再有空格分隔的項。
關閉一個文件在c++中
關閉文件是一個很好的實踐,而且必須關閉文件。每當c++程序結束時,它會清空所分配的內存,並關閉文件。我們可以在close()函數的幫助下執行該任務。
語法:
FileName.close ();
關閉文件程序:
#include ;int main() {fstream FileName;FileName.open(“FileName.txt”,ios:);if (!FileName) {cout<<"文件不存在";} else {cout<<"文件成功打開";}} FileName.close ();返回0;}
以上代碼解釋
- 這裏我們有一個iostream庫,它負責輸入/輸出流。
- 我們還有一個fstream庫,它負責處理文件。
- 創建一個fstream類的對象並命名為“FileName”。
- 在上麵創建的對象上,我們將應用open()函數來創建一個新文件,並將模式設置為' out ',這允許我們寫入文件。
- 我們使用' if '語句來檢查文件的創建。
- 如果文件不存在,則將消息打印到控製台。
- 如果文件已打開或未打開,則將消息打印到控製台。
- 我們在對象上使用close()函數來關閉文件。
文件位置指針
我們可以使用istream和ostream中的特殊成員函數來重新定位文件位置指針。這些成員函數是' seekg '和' seekp '。' seekg '或' seek get '用於istream, ' seekp '或' seek put '用於ostream。
這兩個成員函數都以長整數作為參數。第二個參數用於指定seek的方向。seek方向可以是ios::beg(定位在流的開始),ios::cur(定位在流的當前位置)和ios::end(定位在流的結束位置)。
至此,關於c++中文件處理概念的博客就結束了。我們希望您覺得這篇文章全麵而有幫助,並能夠獲得所需的知識。如果你希望提高技能並學習更多這樣的概念,你可以查看Great Learning Academy上的免費在線課程。beplay2018官网
此外,如果你正在準備麵試,看看這些c++麵試問題像專業人士一樣打滿分。