[問題] class 、 fstream 與 vector (已解決

看板C_and_CPP (C/C++)作者 (這個嘛..)時間16年前 (2009/10/16 03:44), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串1/1
最近在做專題, 在寫程式時卡關了, 我只學過基本的 C++ , 因為本身對 C++ 蠻有興趣的, 就到網路上下載了深度學習 C++ 下來自學, 當初在學基礎時 Class 就沒學得很好, 最近嘗試著別把程式都擠在 main 裡面, 所以看了看 PDF 後就把 Class 拿來用了。 因為專題主要功能是要做讀取和寫入檔案, 因此先初步寫了一個讀取和列印檔案的小程式, 在輸出入的部份一直以來都是用 fstream 來達成, 但用在 Class 裡遇到了些困難, 因為功力不是很強, 所以不知道問題是在哪裡, 是不是本來就沒辦法在 Class 裡使用 fstream ? 如果是這樣, 那我想問這個讀取檔案的功能該怎麼做呢? 就放棄 Class 改用 function 就好嗎? 以下附上我寫的練習程式: http://0rz.tw/Sr5Cl GOOGLE docs https://docs.google.com/Doc?docid= 0AW1XxY3qsRkbZGNqNmpyczdfNHh4OHJmamNo&hl=zh_TW 麻煩各位幫忙解答, 可能是個很笨的問題 Orz 感謝你看完這篇落落長的問題文。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.171.97.201

10/16 04:16, , 1F
fstream是一個class class包class ok阿
10/16 04:16, 1F
請問我在編譯時,錯誤在宣告 vector 那行, vector 的大小不可以用常數來定義嗎? error C2061: 語法錯誤 : 識別項 'fileSize'

10/16 08:03, , 2F
class初始化請在constructor裡頭做
10/16 08:03, 2F

10/16 08:04, , 3F
例如:我不應該在class寫一個int i = 3;
10/16 08:04, 3F

10/16 08:07, , 4F
而是寫int i; 並在constructor寫i(3)
10/16 08:07, 4F
請問 vector 宣告大小要怎麼放在 constructor 裡面做呢? 以前是學傳統陣列,自學時發現 vector ,就拿來用了。

10/16 14:13, , 5F
initial list
10/16 14:13, 5F

10/16 14:13, , 6F
不過vector不用管大小 可以動態的push_back
10/16 14:13, 6F
嗯嗯, 不過現在又有個新的問題, 我從程式裡看, 我的 fstream 並沒有使用到我 class fileReader 的 private 變數, 但編譯時它一直出現這個錯誤, 是不是我讀取檔案的部份或是 cout 部份有出了什麼問題呢? 我有修改程式一些地方, 這是目前的樣子 http://0rz.tw/Sr5Cl error C2248: 'std::basic_ios<_Elem,_Traits>::basic_ios' : 無法存取 private 成員

10/16 17:06, , 7F
readData 的參數要傳 reference,否則它會試圖複製
10/16 17:06, 7F

10/16 17:07, , 8F
另外 using namespace std 應擺在所有的 #include 之後
10/16 17:07, 8F

10/16 17:07, , 9F
還有你沒有 #include <cstdlib>
10/16 17:07, 9F
謝謝各位的幫助, 目前這個程式可以正常 run 了, 原本透過傳遞檔案 pointer 來開檔的方法似乎行不通,(或者有特殊技巧可以這樣用? 結果改成傳 char[] 來開檔之後成功了。 不過我還有個問題, 請問 cstdlib , 我的程式好像都沒使用到? 這是固定要 include 的嗎? 我看深度學習 C++ 的範例也沒有 include <cstdlib> , 所以我就一直沒有做這動作。 改完的 code 我放在同樣的地方, 應該會一直放著等到它自然消失, 如果有人需要參考的可以看看。(可能性應該不高 XD 再次感謝各位板友的幫助。 <(_ _)> ※ 編輯: gagalucia 來自: 118.171.98.152 (10/17 01:06)
文章代碼(AID): #1ArtkKNY (C_and_CPP)
文章代碼(AID): #1ArtkKNY (C_and_CPP)