c 文件怎么进行读取和写入操作?
C >>和<<讀寫文本文件:
fstream 或者 ifstream 類負(fù)責(zé)實(shí)現(xiàn)對(duì)文件的讀取,它們內(nèi)部都對(duì) >> 輸出流運(yùn)算符做了重載;同樣,fstream 和 ofstream 類負(fù)責(zé)實(shí)現(xiàn)對(duì)文件的寫入,它們的內(nèi)部也都對(duì) << 輸出流運(yùn)算符做了重載。
所以,當(dāng) fstream 或者 ifstream 類對(duì)象打開文件(通常以 ios::in 作為打開模式)之后,就可以直接借助 >> 輸入流運(yùn)算符,讀取文件中存儲(chǔ)的字符(或字符串);當(dāng) fstream 或者 ofstream 類對(duì)象打開文件(通常以 ios::out 作為打開模式)后,可以直接借助 << 輸出流運(yùn)算符向文件中寫入字符(或字符串)。
#include?
#include?
using namespace std;
int main()
{
????int x,sum=0;
????ifstream srcFile("in.txt", ios::in); //以文本模式打開in.txt備讀
????if (!srcFile) { //打開失敗
????????cout << "error opening source file." << endl;
????????return 0;
????}
????ofstream destFile("out.txt", ios::out); //以文本模式打開out.txt備寫
????if (!destFile) {
????????srcFile.close(); //程序結(jié)束前不能忘記關(guān)閉以前打開過的文件
????????cout << "error opening destination file." << endl;
????????return 0;
????}
????//可以像用cin那樣用ifstream對(duì)象
????while (srcFile >> x) {
????????sum = x;
????????//可以像 cout 那樣使用 ofstream 對(duì)象
????????destFile << x << " ";
????}
????cout << "sum:" << sum << endl;
????destFile.close();
????srcFile.close();
????return 0;
}
執(zhí)行此程序之前,必須在和該程序源文件同目錄中手動(dòng)創(chuàng)建一個(gè) in.txt 文件,假設(shè)其內(nèi)部存儲(chǔ)的字符串為:
10 20 30 40 50
建立之后,執(zhí)行程序,其執(zhí)行結(jié)果為:
sum:150
同時(shí)在 in.txt 文件同目錄下,會(huì)生成一個(gè) out.txt 文件,其內(nèi)部存儲(chǔ)的字符和 in.txt 文件完全一樣,讀者可自行打開文件查看。
通過分析程序的執(zhí)行結(jié)果不難理解,對(duì)于 in.txt 文件中的 "10 20 30 40 50" 字符串,srcFile 對(duì)象會(huì)依次將 "10"、"20"、"30"、"40"、"50" 讀取出來,將它們解析成 int 類型的整數(shù) 10、20、30、40、50 并賦值給 x,同時(shí)完成和 sum 的加和操作。
同樣,對(duì)于每次從 in.txt 文件讀取并解析出的整形 x,destFile 對(duì)象都會(huì)原封不動(dòng)地將其再解析成對(duì)應(yīng)的字符串(如整數(shù) 10 解析成字符串 "10"),然后和 " " 空格符一起寫入 out.txt 文件。
聲明:
本文于網(wǎng)絡(luò)整理,版權(quán)歸原作者所有,如來源信息有誤或侵犯權(quán)益,請(qǐng)聯(lián)系我們刪除或授權(quán)事宜。
總結(jié)
以上是生活随笔為你收集整理的c 文件怎么进行读取和写入操作?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工行黄金td交易规则?
- 下一篇: c程序编写x的y次方的方法