檔案操作-輸入輸出
想將這個內容掌握已經很久了,一直沒有付諸行動。
每次使用檔案操作時都不記得還要再去看以前有用到檔案操作的部落格,再有就是有時候程式設計結果不對,修改程式碼後又得重新輸入,著實麻煩,今天就將這兩方面的內容一起復習下,同時分享給大家。
平時在oj上做題碰到硬點子過不去時強烈推薦用freopen(),可以節約大量輸入時間,當然比較簡單的就不要用了,去寫檔案和這行程式碼也需要消耗時間。
而C++最近銀行系統、圖書館等的內容出現的比較頻繁啊,也是需要掌握使用檔案操作的。
<1>
在C語言中,怎樣直接用txt檔案輸入以及把輸出結果直接輸出到檔案中。寫法很簡單:
freopen("Input.txt","r",stdin);
freopen("Output.txt","w",stdout);
是調一個通用的函式freopen,在標頭檔案<stdio.h>中,這個函式有三個引數,第一個表示讀入或者輸出檔案的檔名,第二個有兩個可選引數,“w”表示write,即寫入,“r”表示read,標讀入,然後最後一個也是固定的用法,stdin表示讀入,而stdout標輸出,基本用法是固定的,沒有什麼變化,因此只要記住這個固定結構就可以了。
<2>
在C++中;
首先看看怎麼讀入檔案(即將要輸入的內容從檔案中直接讀取)。
讀入檔案的話首先要使用用類ifstream,它在標頭檔案<fstream>中。
(cin是其衍生出的一個變數,所以cin的所有用法同樣也可以用於這個類。)
以前幾篇部落格中《 第3周專案5-陣列作資料成員(4)》為例:
void Salary::set_salarys()
{
int i=0;
<span style="color:#ff0000;"><u>ifstream infile("salarys.txt",ios::in);</u> </span>// 按照讀取的方式開啟檔案"salarys.txt",
if (!infile) //如果開啟失敗
{
cerr<<"open error!"<<endl;
exit(1); //輸出開啟失敗並退出
}
while (infile>>salarys[i]) //讀入成功則按照順序讀入檔案內容
{
i++;
}
number=i;
infile.close(); //檔案讀入完畢一定要關閉
}
首先執行這個程式的時候需要在你存放原始碼檔案的資料夾中建立一個txt格式的文字並命名為salarys,並在其中提前寫入相對應的資料再執行程式。
需要注意的是這裡的輸出開啟失敗的時候用的是cerr而不是cout,同時當使用exit(1)退出時需要標頭檔案<cstdlib>。
再來看看怎麼通過程式在檔案中寫入內容。
它也包含一個類ofstream,同樣在標頭檔案<fstream>中。
(cout是這個類衍生出的一個變數,因此cout的用法都可以用於這個類,只是它是直接用於輸出到檔案中。)
依舊依部落格《第3周專案5-陣列作資料成員(4)》中檔案寫入為例
void Salary::save_salarys( )
{
int i;
<strong><u><span style="color:#ff0000;">ofstream outfile("salary_data.txt",ios::out); </span></u></strong>//以輸入的方式開啟檔案
if(!outfile) //測試是否成功開啟
{
cerr<<"open error!"<<endl;
exit(1); //同上
}
for(i=0; i<number; ++i)
{
outfile<<salarys[i]<<endl; //從執行視窗或者程式碼中賦值的內容正在按照順序輸入到檔案中
}
outfile.close(); //檔案寫入完畢也一定要關閉
}
執行程式時不需要先建立檔案嗎,在程式執行結束後,它會自動在相應的資料夾中生成檔案salary_data.txt,開啟salary_data.txt就會發現你所輸入的東西已經按照順序在裡面了。
其他方面和讀取時差不多,該加標頭檔案還是得加,兩者必須要注意的時使用檔案後必須要關閉,不然就會出錯。
相關文章
- 排序,檔案輸入輸出排序
- C輸入輸出與檔案
- java_檔案輸入與輸出Java
- C++中的檔案輸入/輸出(3):掌握輸入/輸出流 (轉)C++
- C++ 中輸入輸出流及檔案流操作筆記C++筆記
- python:檔案的輸入與輸出Python
- 第九章:輸入/輸出流與檔案操作 習題
- 第10章 對檔案的輸入輸出
- 【C++】標準檔案的輸入輸出!!!C++
- 檔案輸入輸出處理(二)-位元組流
- 瞭解下C# 檔案的輸入與輸出C#
- C++中的檔案輸入/輸出(2):讀取檔案 (轉)C++
- C++中的檔案輸入/輸出(4):檢測輸入/輸出的狀態標誌 (轉)C++
- 29.企業級開發進階1:檔案輸入輸出流[IO操作]
- Python進階02 文字檔案的輸入輸出Python
- 輸入輸出
- C語言檔案輸入和輸出操作的學習心得(一)C語言
- 分治法求眾數和重數(含檔案輸入輸出)
- 使用Java NIO 和 NIO2實現檔案輸入/輸出Java
- 笨辦法學C 練習24:輸入輸出和檔案
- 專案整合管理主要輸入、工具、輸出
- Linux 下的檔案管理&管理系統中的輸出輸入Linux
- Python 快速教程(進階篇02):文字檔案的輸入輸出Python
- C++中的檔案輸入/輸出(5):二進位制檔案的處理 (轉)C++
- 檔案輸入和輸入出處理(六)-序列化和反序列化
- 【C++】輸入輸出C++
- Java 輸入輸出流Java
- 輸入輸出系統
- JAVA輸入輸出流Java
- MySQL輸出html格式檔案MySqlHTML
- Django靜態檔案輸出Django
- Webpack原理-輸出檔案分析Web
- 文字檔案輸入步驟
- scp不輸入密碼進行檔案傳輸密碼
- linux中的輸入與輸出管理(重定向輸入,輸出,管道符)Linux
- 第13周-閱讀專案1-標準輸入輸出物件及文字檔案物件
- 資料的輸入輸出
- Java —— 標準輸入輸出Java