C了個 01 C 的輸入 輸出和檔案

2021-07-23 08:37:30 字數 2602 閱讀 9530

簡單總結梳理了c++中有關檔案輸入輸出的知識,並新增程式例項(例項見最後)

例程2:2023年華為軟體程式設計大賽檔案(topo.csv、demand.csv、result.csv)的輸入輸出(刪減)

涉及知識:類、函式過載、模板、多重繼承、流操作、緩衝區、控制符和格式化常量、型別轉換

學習目的:文字檔案輸入輸出、控制輸出格式

使用的類:iostream(標準輸入輸出類)、fstream(檔案輸入輸出類)、sstream(string字串輸入輸出類)

流操作:(c++把輸入輸出看作位元組流,通過對位元組流物件進行操作來對資料做相應的輸入輸出處理)

緩衝區:(記憶體塊,裝置與程式之間的臨時儲存工具,幫助匹配兩者不同的傳輸速率)

繼承關係:作圖

輸出格式化:

輸入:(給程式提供資料)

檔案關聯:

檔案模式:(描述檔案如何被使用:讀、寫、追加)

核心格式化:(負責程式和string物件的i/o)

例程1:

實現命令列引數讀取檔案,並對檔案中的字元數進行統計求和

#include#include// for cerr/cout

//#include// for exit()

int main(int argc,char* argv) // 命令列引數,argv[i]是第 i 個指向 char 的指標(位址)

ifstream fin; // 開乙個檔案輸入流

long count;

long total = 0;

char ch;

for (int i = 1;i < argc;i++)

count = 0;

while (fin.get(ch))count++; // 統計檔案中的字元數

cout << count << " character in " << argv[i] << endl;

total += count;

fin.clear(); // 重新開啟輸入

fin.close(); // 換檔案需要先斷開之前的檔案 disconect file

} cout << total << " charaters in all files.";

return 0;

}

例程2:

2023年華為軟體程式設計大賽檔案(topo.csv、demand.csv、result.csv)的輸入輸出(刪減)

#include#include#include#include#include// for setw() setfill()

int main()//int argc,char* argv) // 命令列引數

cout << endl;

} }cout << "*********************************" << endl;

file_topo.close();

//file_topo.clear();

ifstream file_demand("f:\\demand.csv");//argv[2]); // 關聯 demand.csv 檔案

string demand_line;

string demand_sec[3];

string demand_num[52];

int num_len = 0;

if (file_demand.good())

istringstream strsec_demand(demand_sec[2]);

int i = 2;

while (getline(strsec_demand,demand_num[i],'|'))

num_len = i;

} }int* dem_num = new int[num_len]; // 動態陣列

dem_num[0] = atoi(demand_sec[0].c_str());cout << dem_num[0] << " ";

dem_num[1] = atoi(demand_sec[1].c_str());cout << dem_num[1] << " ";

for(int i = 2;i < num_len;i++)

cout << endl << "*********************************" << endl;

file_demand.close();

//file_demand.clear();

ofstream file_result; // 關聯 result.csv 檔案

file_result.open("f:\\result.csv",ios::out|ios::trunc); //argv[3],ios::out|ios::trunc);

file_result << setw(2) << setfill('0') << dem_num[0];

for(int i = 1;i < num_len;i++)

file_result.close();

//file_result.clear();

return 0;

}

C 輸入輸出和檔案控制

1.流和緩衝區 c 程式把輸入輸出看作位元組流。輸入時,程式從輸入流中抽取位元組,輸出時,程式將位元組插入到輸出流中。2.c 的iostream檔案將自動建立8個流物件 4個用於窄字元流,4個用於寬字元流 標準輸入裝置 cin 標準輸入流 wcin 寬字元型別 標準輸出裝置 cout 標準輸出流 w...

C 入門 C 輸入輸出和檔案操作

2.流操縱運算元 二 檔案讀寫 3.關閉檔案 與輸入輸出流操作相關的類 標準流物件 輸出流物件 判斷輸入流結束 可以用如下方法判輸入流結束 int x while cin x istream類的成員函式 istream getline char buf,int bufsize 從輸入流中讀取bufs...

c 中的輸入 輸出和檔案流

前言 最近又拾起了c primer plus,於是學習了這一章,於是寫下部落格記錄以前忽略的。1.關於cout的輸出精度,系統預設的是6,也就是顯示的總位數,但是如果末尾的數字為0,會省略,比如13.2000的精度為6,但是列印出來為13.2,0被省略 所以如果我們想要修改精度,怎麼修改?在cout...