C++簡易檔案讀寫

來源:互聯網
上載者:User

   最近開始看C++了,以前在大一寒假時,本來就準備開始學C++的(大一上學期開了C++的課,很是喜歡),結果我姐一句"C++過時了,學Java吧"這樣的話,誤導了我,導致我大學從大一下學期開始一直到現在工作,主要都是使用的Java語言。實在令我汗顏,不過現在也決定邊學習邊寫寫部落格。


  1.C++文本寫入

  主要使用了處理輸出的ofstream類,包含在fstream標頭檔中。

  

#include<iostream>#include<fstream>using namespace std;void writeFile(){ofstream outFile;outFile.open("test.txt");cout<<"Please input your name:";char input[10];cin >> input;int age;cout<<"Please input your age:";cin >> age;double money;cout.setf(ios::fixed);        cout.precision(6);cout<<"Please inpu your money:";cin >> money;double other = money * 0.925;cout <<"Money:" << other << endl;outFile << input << endl;   //寫入姓名outFile << age << endl;     //寫入年齡outFile << other << endl;   //寫入金錢outFile.close();}int main(){writeFile();return 0;}

  上面是很簡單的一段寫入檔案的代碼。

  首先建立一個輸出類ofstream outFile;

  開啟一個檔案outFile.open("test.txt");

  然後是一些簡單的輸入資訊。

  cout.setf(ios::fixed)的意思是設定為定點輸出格式。

  cout.precision(6)的意思是將精度設為6位。

  這裡主要是學習一下指定精度的浮點輸出。

  

  另外 ofstream 可以和 cout一樣的使用<<。 只不過ofstream是檔案中輸出資料,而cout是向控制台輸出資料。

  最後使用outFile.close()進行關閉。如果忘記關閉的話,也會在程式終止後自動關閉它。


  2.C++文本讀取

  主要使用了處理輸出的ifstream類,包含在fstream標頭檔中。

  

#include<iostream>#include<fstream>using namespace std;void readFile(){ifstream inFile;inFile.open("test.txt");if(inFile.is_open()){char input[10];inFile >> input;int age;inFile >> age;double money;inFile >> money;cout << "ReadFile Complete"  << endl;cout << "Name:" << input << endl;cout << "Age:" << age << endl;cout << "Money:" << money << endl;}}int main(){readFile();return 0;}

  同樣的,讀取檔案使用ifstream類。

  不過進行讀取檔案時,最後進行判斷檔案是否被開啟,因為如果檔案未被成功開啟,將會在讀取時出錯。

  這裡採用inFile.is_open()進行判斷。

  如同ofstream一樣,ifstream可以和cin一樣使用 >> 。只不過前者用於向檔案中讀取資料,後者用於讀取控制台的輸入。

  當然,也可以採用讀取整行的方法。

  例如:   char line[81];

             inFile.getline(line, 80);


  如果是迴圈進行檔案讀取,則需要判斷檔案是否到達檔案尾。

  可以採用if(inFile.eof()){} 來判斷是否到達EOF,然後採用else if(inFile.fail())用於檢查EOF和類型不符。用於判斷讀取迴圈終止的原因,以進行其他的操作。


   將兩部分代碼合運行效果:

   

  

  PS:C++簡易的檔案讀寫就到這裡了。本人畢業不久,經驗有限,希望大家指出錯誤,一起進步。

        另外,最近下班回家的晚上也開始使用JavaFX Scene Builder了,應該在最近就會寫相關的博文。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.