[問題] 讀檔之function問題

看板C_and_CPP (C/C++)作者 (殺手)時間14年前 (2012/05/04 21:24), 編輯推噓1(1029)
留言30則, 7人參與, 最新討論串1/1
使用codeblocks 寫C++ 想把讀檔寫成function (已將問題簡化) 檔案 a.txt 內容 n 5 s 2 為了閱讀方便 , 將程式碼貼在網站 http://ideone.com/n9unn 很不懂的是 第8行要怎麼表達? ifstream fin(filename); 覺得很奇怪 這樣的程式碼可以執行 ??? 因為自己原本的程式也是這樣寫 卻跑不出來,反而這個簡易的版本可以執行! 因為在main裡面沒有宣告任何東西 就寫read("a.txt",n,s); 再加上第8行的ifstream fin(filename); 這樣子而已! 可是自己的大程式 , 卻要將第8行寫成ifstream fin("a.txt"); 才可以執行!!! 我不懂為什麼會這樣??? 在function裡面 不是應該寫 ifstream fin(filename); 然後在main裡面 再看你要讀哪一個檔案 再把檔案名稱寫入嗎? 不知道這樣說明會不會很亂??? 其實就是想請教 若想把讀檔的模式做成一個function來運用 那在function裡面要怎麼寫? 在main()裡面要怎麼寫??? 懇請各位高手指教~~~~ ><" 百思不得其解 弄了好幾個小時了 想不透 @@" 謝謝您~~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.99.192

05/04 21:45, , 1F
能不能把大程式呼叫 read 的方式寫出來?
05/04 21:45, 1F

05/04 21:57, , 2F
fstream fin; fin.open(fileName, ios::in); ?
05/04 21:57, 2F

05/04 21:58, , 3F
或者傳string進來用c_str讓他自己轉?
05/04 21:58, 3F

05/04 22:09, , 4F
大程式超大的 還有一堆標頭檔 想說寫個簡單的表達一下 沒想到
05/04 22:09, 4F

05/04 22:09, , 5F
沒想到~ 這個小程式居然能跑 @@"
05/04 22:09, 5F

05/04 22:11, , 6F
請問love大 不是很懂您的意思說~ 在function寫還是在main?
05/04 22:11, 6F

05/04 22:35, , 7F
你在main裡open file 但在function裡並不會看到它
05/04 22:35, 7F

05/04 22:37, , 8F
如果你要在main open file 就必須傳一個代表file stream的
05/04 22:37, 8F

05/04 22:37, , 9F
物件 而非檔名
05/04 22:37, 9F

05/04 23:36, , 10F
所以在function寫 ifstream fin(filename)
05/04 23:36, 10F

05/04 23:37, , 11F
那在main裡面要開啟 a.txt , 要怎樣寫呢???
05/04 23:37, 11F

05/04 23:40, , 12F
還是不太懂用法 要怎麼寫???
05/04 23:40, 12F

05/04 23:40, , 13F
看不太懂你的問題,另外排版也請加強
05/04 23:40, 13F

05/04 23:42, , 14F
應該說,你為什麼要寫成function?你想要怎麼使用它?
05/04 23:42, 14F

05/04 23:43, , 15F
抱歉~ ><" 以後會加強~
05/04 23:43, 15F

05/04 23:44, , 16F
我想要呼叫這個讀檔的function 然後在main裡面呼叫它讀a.txt
05/04 23:44, 16F

05/04 23:46, , 17F
我要用main呼叫讀檔的function去讀a.txt這個檔案
05/04 23:46, 17F

05/04 23:47, , 18F
然後讀檔的function 再根據a.txt內容讀入 存取
05/04 23:47, 18F

05/04 23:47, , 19F
現在不知道在main裡面的語法要怎麼寫 function的要怎麼寫???
05/04 23:47, 19F

05/04 23:48, , 20F
我還是看不懂耶…你貼的範例程式哪裡不符合你的需求?
05/04 23:48, 20F

05/04 23:53, , 21F
現在的問題就是 我的大程式這樣寫不能run
05/04 23:53, 21F

05/04 23:54, , 22F
那我會建議你還是把大程式貼上來吧
05/04 23:54, 22F

05/04 23:57, , 23F
想說寫個小程式來問 結果小程式居然跑的動 @@"
05/04 23:57, 23F

05/05 09:56, , 24F
我不會C++的檔案讀寫 假如是用C的開檔方式 我會用FILE*
05/05 09:56, 24F

05/05 09:57, , 25F
作參數傳遞
05/05 09:57, 25F

05/05 10:11, , 26F
大概像這樣 http://ideone.com/jXPTf
05/05 10:11, 26F

05/05 18:15, , 27F
感謝各位的指點 我再試看看別的寫法 ^^
05/05 18:15, 27F

05/05 18:21, , 28F
讀檔的話,我會先用fopen之後接fread,沒看過直接read的
05/05 18:21, 28F

05/06 00:30, , 29F
2F  
05/06 00:30, 29F

05/06 00:31, , 30F
你都用C++了為什麼不用C++方式呢?比較直覺
05/06 00:31, 30F
文章代碼(AID): #1FezY0Fd (C_and_CPP)
文章代碼(AID): #1FezY0Fd (C_and_CPP)