[問題] function丟function 的問題

看板C_and_CPP作者 (殺手)時間12年前 (2012/01/19 20:54), 編輯推噓2(2015)
留言17則, 8人參與, 最新討論串1/1
使用 C++ 各位高手 您們好~ 想請教個問題 ^^ 先用文字描敘一下問題 原本是在main()中 讀入兩個文字檔 (a.txt & c.txt) , 然後再丟入 d_function 做運算! 可是我現在要把讀檔的動作 做成function! (但是 c.txt 是另外再做一隻小程式 將a.txt & b.txt 變成 c.txt) 所以有兩個文字檔(a.txt & b.txt) <--- 做成 a_function & b_function 然後再將這兩個檔變成一個檔案 (此檔案先output在螢幕上, 假設為c.txt) <--- 做成 c_function 接著有一個 d_function 要讀入 a_function的資料 & c_function的資料 但是有個問題原本的 d_function中有一個變數 , 是 Time *t (Time型態 是自己寫的標頭檔) 因為我將外面的小程式都併進來 , 所以導致原先在 d_function中的變數 *t , 在 b_function中這個變數 *t是int 型態! 但是 b_function的這個變數 int *t , 再到這個主要的 d_dunction中 我必須轉換成 Time *t ! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^(這個部份我不知道怎麼做?!) (資料是一樣的 , 只是到 d_function中 我必須將形態變成 Time) ==================已下是簡略的程式碼============================= void A (const char *filename, int &n){//讀 a.txt資訊的function int i,j,tmp; char c;//讀檔中的字元 ifstream fin(filename); if(!fin){ cout<<"error A"<<endl; exit(0); } tmp=0; while(fin.peek()!=EOF){ //讀進 a.txt fin>>c; if(c=='n'){ fin>>n; .............略........ } } } else if(c=='s'){ ......略....... } } fin.close(); } void B (const char *filename2, int &Num, int *&t){//讀 b.txt資訊的function int i,j,tmp; char c;//讀檔中的字元 ifstream fin2(filename2); if(!fin2){ cout<<"error B!!!"<<endl; exit(0); } tmp=0; while(fin2.peek()!=EOF){ fin2>>c; if(c=='n'){ fin2>>Num; t=new int[Num]; } else if(c=='d'){ ......略....... } } fin2.close(); } void C (int &Num, int &n, int *&t){ cout<<Num<<endl; ......略..... for迴圈 { cout<<"d "<<d[i] } } ///////接著我想要把 A 和 C 的資料丟到 D /////////// void D (int &Num,int &n, Demand *&t){ ...............略............... } 就是卡在這裡!!! 這個變數 *t 要怎麼調整???? 懇請各位高手指點..... 若是可以 希望不要變動 d_functon的東西 , 因為裡面的運算很複雜 程式碼很多行 ><" , 折磨我這個新手很久很久 XD 謝謝您~~~!!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.96.182

01/19 20:58, , 1F
看不太懂你的問題,只是覺得需要用到int *&t嗎?
01/19 20:58, 1F

01/19 21:04, , 2F
看到*&就暈@_@
01/19 21:04, 2F

01/19 21:14, , 3F
要 要用到int *&t
01/19 21:14, 3F

01/19 21:15, , 4F
糟糕 ><" 我以為我已經寫得很清楚了 那怎麼辦 ><"
01/19 21:15, 4F

01/19 22:00, , 5F
你重寫吧...不然就改寫Time讓他可以吃int
01/19 22:00, 5F

01/19 22:00, , 6F
說真的寫的這麼複雜你3個星期後回來你是要怎麼維護?
01/19 22:00, 6F

01/19 22:17, , 7F
黑大 你是叫我重寫說明 還是重寫程式 XD
01/19 22:17, 7F

01/19 22:19, , 8F
因為Time是一個標頭檔 裡面存了好多不同型態的變數
01/19 22:19, 8F

01/19 22:32, , 9F
我在想如果你用置底連結貼完整程式碼會不會比較好懂
01/19 22:32, 9F

01/19 23:46, , 10F
意思是說 d_function()目前有個參數和函式裡面的區域變數
01/19 23:46, 10F

01/19 23:46, , 11F
都叫作t嗎?
01/19 23:46, 11F

01/20 00:02, , 12F
*&是什麼鬼...傳變數用參照的方式傳?
01/20 00:02, 12F

01/20 00:11, , 13F
改變數名稱就行了吧,這年頭IDE都有支援這類功能
01/20 00:11, 13F

01/20 02:03, , 14F
Time的型態應該也是用typedef去定的吧~
01/20 02:03, 14F

01/20 02:04, , 15F
搞不好只是個unsigned int 那直接轉型應該是可以~
01/20 02:04, 15F

01/20 09:37, , 16F
感謝各位的指點 我可能把問題複雜化了 應該改一下變數名稱
01/20 09:37, 16F

01/20 09:37, , 17F
就可以了~~!!! 真是抱歉 XD
01/20 09:37, 17F
文章代碼(AID): #1F61A6dE (C_and_CPP)