C++文件讀取

在C語言中打開和處理文件很複雜,並且一般用不上,以至於我看C++的時候直接忽略掉這部分。然而C++語言中的iostream庫提供了一種簡單的方法來處理文件。

打開文件進行讀寫操作,必須包含<fstream>,雖然<fstream>會自動包含<iostream>,但如果要使用cin、cout,最好還是現實包含<iostream>。

爲了讀而打開文件,要創建一個ifstream對象,它的用法與cin相同;爲了寫而打開文件,要創建ofstream對象,它的用法與cout相同。


<iostream>庫中有一個非常有用的函數getline().

函數原型:getline(istream &, string &, char del);

函數參數:第一個參數打開的流,第二個參數保存讀入的內容,第三個參數是字段分隔符,默認是'\n'。

函數功能:從輸入流讀入一行內容到string s。

函數返回false條件:讀入了文件結束標誌(沒有讀入字符)


eg1(每次讀入一行):逐行讀入特定文件(測試爲txt文件)並輸出。

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main() {
	ifstream in("C://Users//Administrator//Desktop//a.txt");
	string str;
	while(getline(in,str)){
		cout << str << endl;
	}
	return 0;
}

eg2(每次讀入一個單詞):從特定文件逐個讀入單詞並統計給定單詞出現的次數。

<span style="font-size:18px;">#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main() {
	ifstream in("C://Users//Administrator//Desktop//a.txt");
	string str;
	string findword = "the";
	int num = 0;
	while(in >>str){
		if(str == findword)
			++num;
	}
	cout << num << endl;
	return 0;
}</span>

eg3:一次顯示文件的一行,然後等待用戶按回車鍵以後顯示下一行。

<span style="font-size:18px;">#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main() {
	ifstream in("C://Users//Administrator//Desktop//a.txt");
	string str;
	string word;
	while(getline(in,str)&&(cin.get() =='\n')){
		cout << str <<endl;
	}
	return 0;
}</span>
很多時候都希望輸入回車來結束輸入,C語言可以用:

if(getchar() == '\n')

C++語言可以用cin.get()來獲取流中的字符,然後判斷是否爲回車符:

while(cin.get() ==‘\n’)

如果不是將字符放入流中:

cin.unget()




發佈了65 篇原創文章 · 獲贊 39 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章