作者larryho (新人偉)
看板C_and_CPP
標題[問題] 在讀取檔案時如何動態存取
時間Fri Sep 18 18:19:22 2009
printf("請輸入檔名:");
scanf("%s", filename); //輸入檔名
FILE *fin = fopen(filename,"r"); //開啟檔案
if(fin==NULL) //判斷是否有這個檔
{
printf("找不到這個檔\n");
return 0;
}
i=0;
j=0;
while(!feof(fin)) //讀到沒資料 換行
{
fscanf(fin, "%c", &sequence[i][j]);
if (sequence[i][j] == '\n') {
i++;
j=0;
}
else
{
j++;
}
}
我這邊的sequence[i][j]上面有宣告大小,可是我讀取的資料大小不一定,這樣我要如何
動態宣告一個二維陣列來存資料?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.150.144
1F:→ james732:malloc 09/18 18:21
2F:→ johnhmj:malloc(嘛落ㄎ)calloc(卡落ㄎ)請記得用完加free 09/18 18:32
3F:→ johnhmj:用class包字元陣列,再new以及delete物件也可以。 09/18 18:34
4F:推 hilorrk:vector 09/18 18:54
5F:推 VictorTom:vector也許比較適合, 除非再怎麼動態你也可以先parser 09/18 20:57
6F:→ VictorTom:檔案得知有幾筆; 再不然就是用linked-list自幹....XD 09/18 20:57
7F:推 tropical72:DWORD WINAPI GetFileSize(HANDLE , LPDWORD); 09/19 04:25
8F:→ tropical72:我會用FileSize先配置一維大小後再下去砍 09/19 04:26
9F:推 VictorTom:只要FileSize不見得能得到一維需要配多少大小, 必須視資 09/19 12:50
10F:→ VictorTom:料檔的特性來覺得; 當然, 如果一維大小就開FileSize那麼 09/19 12:50
11F:→ VictorTom:大就另當別論了XD 09/19 12:50