作者ieck (殺手)
看板C_and_CPP
標題[問題] function丟function 的問題
時間Thu Jan 19 20:54:28 2012
使用 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
→ james732:看不太懂你的問題,只是覺得需要用到int *&t嗎? 01/19 20:58
→ tjjh89017:看到*&就暈@_@ 01/19 21:04
→ ieck:要 要用到int *&t 01/19 21:14
→ ieck:糟糕 ><" 我以為我已經寫得很清楚了 那怎麼辦 ><" 01/19 21:15
→ blackwindy:你重寫吧...不然就改寫Time讓他可以吃int 01/19 22:00
→ blackwindy:說真的寫的這麼複雜你3個星期後回來你是要怎麼維護? 01/19 22:00
→ ieck:黑大 你是叫我重寫說明 還是重寫程式 XD 01/19 22:17
→ ieck:因為Time是一個標頭檔 裡面存了好多不同型態的變數 01/19 22:19
→ james732:我在想如果你用置底連結貼完整程式碼會不會比較好懂 01/19 22:32
推 Rukawa31:意思是說 d_function()目前有個參數和函式裡面的區域變數 01/19 23:46
→ Rukawa31:都叫作t嗎? 01/19 23:46
→ diabloevagto:*&是什麼鬼...傳變數用參照的方式傳? 01/20 00:02
推 littleshan:改變數名稱就行了吧,這年頭IDE都有支援這類功能 01/20 00:11
→ aagogo:Time的型態應該也是用typedef去定的吧~ 01/20 02:03
→ aagogo:搞不好只是個unsigned int 那直接轉型應該是可以~ 01/20 02:04
→ ieck:感謝各位的指點 我可能把問題複雜化了 應該改一下變數名稱 01/20 09:37
→ ieck:就可以了~~!!! 真是抱歉 XD 01/20 09:37