有關讀檔的問題~~ |
答題得分者是:windblown
|
john_stacker
一般會員 發表:9 回覆:0 積分:1 註冊:2004-12-02 發送簡訊給我 |
我有一個檔案的內容以下:
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 發送簡訊給我 |
|
windblown
中階會員 發表:0 回覆:117 積分:98 註冊:2003-11-14 發送簡訊給我 |
用 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 ); |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |