線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:922
推到 Plurk!
推到 Facebook!

有關讀檔的問題~~

答題得分者是:windblown
john_stacker
一般會員


發表:9
回覆:0
積分:1
註冊:2004-12-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-04 03:10:40 IP:211.76.xxx.xxx 未訂閱
我有一個檔案的內容以下: 0 6 8 2 1 8 10 3 2 7 9 4 3 9 11 5 4-1 5-1 我要把它讀入記憶體阿~~ 讓結果變成 grid_information[0]= 0 6 8 2 grid_information[1]= 1 8 10 3 grid_information[2]= 2 7 9 4 grid_information[3]= 3 9 11 5 也就是說,後面有-1的我不能存入,還有每次ㄧ行的資料就存再同一個陣列位址裡... 我是這樣寫的.... ifstream grid_infile("grid_edge.txt",ios::in); if(!grid_infile) ShowMessage("Can't Open Files ~~~ "); char ch[20]; i=0; for(grid_infile>>ch;!(grid_infile.eof());grid_infile>>ch) { if(ch!="\n") { grid_information[i].name=i; grid_information[i].edge =ch; } else i ; } ======struct define======= struct Grid { int name; String edge; int count; }; 可是程式秀出來都是再同一個記憶體位址. grid_information[0].edge=0682181032794391154-15-1 請問該怎麼解決阿??
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-04 09:17:07 IP:210.68.xxx.xxx 未訂閱
    您好:PO程式碼的方式請參考版規說明,煩請修改謝謝您的配合 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=58991
windblown
中階會員


發表:0
回覆:117
積分:98
註冊:2003-11-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-04 09:58:30 IP:61.229.xxx.xxx 未訂閱
用 getline()來讀取一行的資料,用 strstr() 來找 "-1" 這個字串  
  ifstream grid_infile("grid_edge.txt",ios::in);
  if(!grid_infile)
     ShowMessage("Can't Open Files ~~~ ");
  
  char ch[20];
  
  int i=0;
  do {
    grid_infile.getline(ch, 20);
    if ( grid_infile.eof() ) { break; }        if( strstr(ch, "-1")==NULL ) { // 沒有找到 -1
      grid_information[i].name=i;
      grid_information[i].edge=ch;
      i  ;
    }
  } while ( true );     
系統時間:2024-11-23 19:33:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!