[問題] C++_動態陣列_讀檔
開發平台(Platform): QtCreator
問題(Question):利用動態陣列讀檔是否有達到動態效果? 以及如何驗證?
餵入的資料(Input): .txt
1 10
100 200
201 210
900 1000
預期的正確結果(Expected Output):
1 10
100 200
201 210
900 1000
錯誤結果(Wrong Output): None
程式碼(Code):(請善用置底文網頁, 記得排版)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream file;
char *buffer = new char[300];
file.open("C:\\Users\\redon_000\\Desktop\\QT\\Uva_3n_add_1\\TestFile.txt",ios::in);
if(!file)
cout <<"The file didn't open"<<endl;
else
{
file.read(buffer,300);
cout <<buffer<<endl;
file.close();
}
delete [] buffer;
return(0);
}
補充說明(Supplement): 目前初學C++,依照書本上的讀檔,
是宣告一個死的陣列給他,但我想學習如何運用動態陣列,上面是讀整個檔案
若此問題解決,依行讀取也使用動態陣列,在記憶體配置上會來的有效率,
認真想學習,謝謝大家。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.120.101.186
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1407896080.A.784.html
→
08/13 10:15, , 1F
08/13 10:15, 1F
→
08/13 11:15, , 2F
08/13 11:15, 2F
→
08/13 11:48, , 3F
08/13 11:48, 3F
→
08/13 11:49, , 4F
08/13 11:49, 4F
→
08/13 11:49, , 5F
08/13 11:49, 5F
→
08/13 12:43, , 6F
08/13 12:43, 6F
→
08/13 12:44, , 7F
08/13 12:44, 7F
→
08/13 12:48, , 8F
08/13 12:48, 8F
→
08/13 12:49, , 9F
08/13 12:49, 9F
→
08/13 12:50, , 10F
08/13 12:50, 10F
→
08/13 12:50, , 11F
08/13 12:50, 11F
→
08/13 12:52, , 12F
08/13 12:52, 12F
→
08/13 12:54, , 13F
08/13 12:54, 13F
→
08/13 12:55, , 14F
08/13 12:55, 14F
→
08/13 12:56, , 15F
08/13 12:56, 15F
→
08/13 12:57, , 16F
08/13 12:57, 16F
→
08/13 13:05, , 17F
08/13 13:05, 17F
→
08/13 13:06, , 18F
08/13 13:06, 18F
→
08/13 13:18, , 19F
08/13 13:18, 19F
→
08/13 13:20, , 20F
08/13 13:20, 20F
→
08/13 13:40, , 21F
08/13 13:40, 21F
→
08/13 13:42, , 22F
08/13 13:42, 22F
→
08/13 13:45, , 23F
08/13 13:45, 23F
→
08/13 13:46, , 24F
08/13 13:46, 24F
→
08/13 13:47, , 25F
08/13 13:47, 25F
那我再重新重整一下我的問題:
在讀檔的時候,不管是讀整個,或者是分行讀
都要先 char buffer[x] ,其中 x 基本上採最簡單的方式是直接給他一個值
但若直接給值的話,假使文件內容大於這個值,會發生錯誤,
但值給太大又會浪費掉資源,所以才想要詢問說能否讓這個x自動隨著文件做改變
gride2大提供的file.tellg(),可以在讀整份文件時自動提供這個x
所以有回答到我的問題,而後衍生出說那我要讀分行的話,那個x如何取得的問題?
一開始直接聯想到動態是想說給了動態連結,即使我x給大他也會動態校正,
但經討論後發現我設想不周詳。抱歉,初學C++,讀檔是蠻重要的一環
所以問得比較細,真心想學好。回到問題
目前分行讀取上,若使用getline()的話,你仍要先設char buffer[x],
那這個x值有辦法自動取得嗎? Nishan大,你提到的那方法有更具體的範例嗎?
※ 編輯: redonizuka (140.120.101.186), 08/13/2014 14:38:07
→
08/13 15:14, , 26F
08/13 15:14, 26F
→
08/13 15:17, , 27F
08/13 15:17, 27F
→
08/13 15:17, , 28F
08/13 15:17, 28F
→
08/13 15:18, , 29F
08/13 15:18, 29F
→
08/13 15:18, , 30F
08/13 15:18, 30F
→
08/13 15:23, , 31F
08/13 15:23, 31F
→
08/13 15:24, , 32F
08/13 15:24, 32F
→
08/13 15:26, , 33F
08/13 15:26, 33F
→
08/13 15:27, , 34F
08/13 15:27, 34F
→
08/13 15:28, , 35F
08/13 15:28, 35F
→
08/15 18:22, , 36F
08/15 18:22, 36F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
問題
0
36