簡單總結梳理了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...