【專案1 - 小玩檔案】
(1)下面程式的功能是統計文字檔案abc.txt中的字元個數,
#include #include #include //
//fstream提供了三個類,用來實現c++對檔案的操作。(檔案的建立,讀寫)。
// ifstream -- 從已有的檔案讀
//// ofstream -- 向檔案寫內容
//// fstream - 開啟檔案供讀寫
////支援的檔案型別
//using namespace std;
int main()
{ fstream file;
file.open("abc.txt", ios::in); // (2)讀入檔案(在此之前已經建立abc文字檔案)
if(!file) {
cout<<"abc.txt can』t open."<
(2)下面程式的功能是將文字檔案abc.txt中的所有行加上行號後寫到newabc.txt檔案中,
/*
*檔名稱:d.cpp
*作 者:張旺華
*完成日期:2023年6月14日
*版 本 號:v1.0
*/#include #include #include using namespace std;
int main()
{ fstream outfile,infile;
infile.open("abc.txt",ios::in); // (1)
if(!infile) {
cout<<"can』t open the file."<
ps:當abc.txt檔案中存在長於80個字元的行時,程式會陷入死迴圈。通過跟蹤發現,從當遇到這個「超長」的行時,infile.getline(buf, 80)先讀出79個字元,以\0結束,之後再讀,buf[0]總是\0,同時!infile.eof()為假,所以進入死迴圈。懷疑這其中該是這種「截斷」式讀取超長行帶來的***。參看《
getline的獲取ifstream的資料
》,其中給出了解釋與對策。
顯然,當初的這個程式並未考慮超長行,而是預設每一行都不會達80個字元而設計的。注意:如果某一行就這樣被「截斷」了,並不意味著這就是一行,直到找到換行符,才能說明這是一行的結束,行數i++才能執行,這個程式的改進又可以進行了。
第十四周專案一 小玩檔案
問題及 檔名稱 小玩檔案 cpp 作 者 白雲飛 完成日期 2015年6月4日 版 本 號 v1.0 程式輸入 字元 include include include using namespace std int main fstream file file.open abc.txt ios in ...
第十四周專案一 小玩檔案
1 下面程式的功能是統計文字檔案abc.txt中的字元個數,請填空將程式補充完整。2 下面程式的功能是將文字檔案abc.txt中的所有行加上行號後寫到newabc.txt檔案中,請填空將程式補充完整。include include include using namespace std int ma...
第十四周 專案一 小玩檔案(2)
問題及 檔名稱 x.cpp 作者 李楠 完成日期 2015年6月3日 版本號 v1.0 輸入描述 略 程式輸出 略 include include include using namespace std int main fstream outfile,infile infile.open abc....