[C++] 純文本查看 復制代碼 #include<iostream>
#include<fstream>
#include<vector>
using namespace std;
int main()
{
//用如果你不知道要讀多少東西的話,可以用"自動變大"的陣列來放資料,C++STL內建有vector
//vector 是一個C++很常使用的儲存空間,稱為容器
//用 vector<TYPE> 來宣告一個可擴充的陣列
//關於 vector 完整用法及概念可以再提問
vector<string> buf;
//讀寫檔案stream有三種
//ifstream 類似cin
//ofstream 類似cout
//fstream 上兩種的混合體
//可以去查查相關資料
ifstream fin;
//A.FUNC()
//我們會說FUNC是A "成員函數"
//如下例子fin是ifstream型態的變數,而ifstream提供了open函數讓ifstream類型的變數可以使用
//這裡就有物件導向的概念了,在下方程式碼會大量的用到
fin.open("test.txt"); //開啟檔案
//檢查是否開啟成功/
if(!fin.is_open())
{
cout<<"開啟test.txt失敗!"<<endl;
}
else
{
string tmp;
//while( fin>>tmp ) 寫過TOJ第5題應該就知道這樣寫會有什麼問題吧
while( getline(fin,tmp) )
{
//把tmp插到陣列的尾巴
buf.push_back(tmp);
}
}
// 檔案用完之後一定要關掉
fin.clear();//清除所有標記 (optional ,如果要重複開檔,這樣比較安全)
fin.close();//關閉檔案
//顯示讀到的資料
cout<<"Read :"<<endl;
for(int i=0;i<buf.size();i++)
{
cout<<buf[i]<<endl;
}
// C++11 的寫法更簡單 要用-std=c++11來編譯
/*for(string &str : buf)
{
cout<<str<<endl;
}*/
return 0;
}
|