C++簡易文件讀寫


   最近開始看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了,應該在最近就會寫相關的博文。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM