目錄
1? ios::out
2?ios::in和is_open
3 put()方法
4 get()方法?
4.1 讀取單個字符?
4.2 讀取多個字符
4.3 設置終結符
5?getline()
1? ios::out
? ? ? ?打開文件用于寫入數據。如果文件不存在,則新建該文件;如果文件原來就存在,則打開時清除原來的內容。
#include <fstream>
#include <iostream>using namespace std; //引入整個命名空間int main()
{fstream file;file.open("test.txt",ios::out);if (!file.is_open()){cout << "文件打開失敗!" << endl;return 0;}return 0;
}
????????項目文件內不存在test.txt文件,則運行后生成。
2?ios::in和is_open
????????ios::in:打開文件用于讀取數據。如果文件不存在,則打開出錯。
?????????is_open :用于檢查文件流是否成功打開并關聯到文件。它返回一個布爾值,指示文件是否已打開。
????????如果將ios::out換成ios::in,則會提示文件打開失敗。?
3 put()方法
????????當 fstream 文件流對象調用 put () 方法時,該方法的功能就變成了向指定文件中寫入單個字符。 put () 方法的語法格式如下: 其中,括號內用于指定要寫入文件的字符。 該方法會返回一個調用該方法的對象的引用形式。
#include <fstream>
#include <iostream>using namespace std;int main()
{fstream file;file.open("test.txt",ios::out);file.put('c');char c = 'w';file.put(c);file.close();return 0;
}
4 get()方法?
? ? ? ? ?fstream
是C++標準庫中用于文件輸入輸出的類,它繼承自iostream
。get()
方法是fstream
(以及其基類istream
)提供的一個常用成員函數,主要用于從文件或輸入流中讀取字符。
注意:
????????ios:in | ios::out:打開已存在的文件,既可讀取其內容,也可向其寫入數據。文件剛打開時,原有內容保持不變,如果文件不存在,則打開出錯。?
4.1 讀取單個字符?
#include <fstream>
#include <iostream>using namespace std;int main()
{fstream file;file.open("test.txt",ios::in | ios::out);if (!file.is_open()){cout << "文件打開失敗!" << endl;return 0;}char n;n = file.get();cout << n;n = file.get();cout << n;n = file.get();cout << n;file.close();return 0;
}
4.2 讀取多個字符
? ? ? ? 首先在test.txt文件存入多行字符。
????????遇到分隔符時停止讀取,但分隔符不會被提取。
#include <fstream>
#include <iostream>using namespace std;int main()
{fstream file;file.open("test.txt",ios::in || ios::out);if (!file.is_open()){cout << "文件打開失敗!" << endl;return 0;}char str[4][1024] = { 0 };//get方法讀到換行符就停止了,所以每讀完一行需要把該行的換行符讀掉file.get(str[0],1024);//讀取第1行file.get();file.get(str[1], 1024);//讀取第2行file.get();file.get(str[2], 1024);//讀取第3行file.get();file.get(str[3], 1024);//讀取第4行for (int i = 0; i < 4; i++){cout << str[i] << endl;}file.close();return 0;
}
4.3 設置終結符
? ? ? ? get()支持人為設置終結符。
file.get(str[0], 1024, 't');//設置終結符為‘t’,讀到t停止cout << str[0];
5?getline()
????????類似get(),但會提取并丟棄分隔符。
#include <fstream>
#include <iostream>using namespace std;int main()
{fstream file;file.open("test.txt",ios::in || ios::out);if (!file.is_open()){cout << "文件打開失敗!" << endl;return 0;}char str[4][1024] = { 0 };for (int i = 0; i < 4; i++){file.getline(str[i], 1024);//整行讀取,排除終結符}for (int i = 0; i < 4; i++){cout << str[i] << endl;}file.close();return 0;
}