知識(shí)點(diǎn)
ofstream和ifstream是由頭文件<fstream>定義的2個(gè)類,分別負(fù)責(zé)輸入和輸出
fin總是從文件開始部分讀取,為了讀取第二行,使用了“ fin.ignore(256,'\n'); ”
-
為了將數(shù)據(jù)寫入文件,需要?jiǎng)?chuàng)建一個(gè)輸出文件流ofstream的對(duì)象fout,通過構(gòu)造函數(shù)來打開一個(gè)文件,將文件與fout對(duì)象連接,然后通過<<將數(shù)據(jù)插入fout對(duì)象,實(shí)現(xiàn)數(shù)據(jù)和文件關(guān)聯(lián)的目的。
#include "stdafx.h" #include<iostream> //引入輸入輸出文件流對(duì)象的頭文件 #include<fstream> using namespace std; //主函數(shù) int _tmain(int argc, _TCHAR* argv[]) { //定義變量,保存程序中的數(shù)據(jù) int nYear, nMonth, nDate; //嘗試打開Date.txt文件,并將其連接到輸入文件流fin ifstream fin("Date.txt"); //如果成功打開Date.txt文件,則從文件中讀取內(nèi)容 if (!fin.bad()) { //忽略文件中第一行的提示信息 fin.ignore(256, '\n'); //用提示符“>>"從文件輸入流fin中讀取記錄的數(shù)據(jù),并保存到相應(yīng)的變量 fin >> nYear >> nMonth >> nDate; //將數(shù)據(jù)顯示到屏幕 cout << "文件中的日期是" << nYear << "-" << nMonth << "-" << nDate << endl; //讀取完成后,關(guān)閉文件 fin.close(); } else { //如果文件打開失敗,則提示錯(cuò)誤信息 cout << "無法打開文件并進(jìn)行讀取" << endl; } //提示用戶輸入新的數(shù)據(jù)并將其寫入文件 cout << "請(qǐng)輸入當(dāng)前日期(年月日):" << endl; //從用戶屏幕獲取用戶的鍵盤輸入并保存到相應(yīng)的變量中 cin >> nYear >> nMonth >> nDate; //嘗試打開文件Date.txt,并將其連接到輸出文件流fout中 ofstream fout("Date.txt"); //如果成功打開Date.txt文件,則將用戶輸入的數(shù)據(jù)寫入文件 if (!fout.bad()) { //利用插入符”<<“將數(shù)據(jù)寫入文件輸出流fout中 //也就是將數(shù)據(jù)寫入文件 fout << "用戶當(dāng)前的日期是:\n" << nYear << "" << nMonth << "" << nDate; //寫入完成后,關(guān)閉文件 fout.close(); } else { //如果無法打開文件。則提示用戶信息 cout << "無法打開文件并進(jìn)行寫入" << endl; } return 0; }
代碼運(yùn)行情況如下

image.png