[爆卦]c檔案讀取是什麼?優點缺點精華區懶人包

為什麼這篇c檔案讀取鄉民發文收入到精華區:因為在c檔案讀取這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者Hack (阿葉)看板C_and_CPP標題[問題] 讀取float類型檔案時間Tue Nov ...


開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
DEV C

問題(Question):
讀取的檔案內容如下:

4.489013 3.949385 1 //放至陣列array[0][1].array[0][2].array[0][3]
3.234519 3.032182 1 //放至陣列array[1][1].array[1][2].array[1][3]
2.339381 3.233512 1 //以此類推
3.067888 3.272515 1
3.337977 3.214286 1

想將這些數儲存至二維陣列中,
遇到換行則陣列也換列,如上所示。

麻煩大家幫忙解惑....已經卡好久了QQ

感激不盡!!

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.105.218
Feis:換行有什麼問題? 11/05 12:01
※ 編輯: Hack 來自: 114.45.105.218 (11/05 12:43)
yvb:fgets() + sscanf() ? 11/05 12:42
yvb:有一行 getc() + ungetc() + fscanf() 被修掉了... 11/05 12:46
yvb:還有, 看 return code 應該也可判斷讀檔結束沒. 11/05 12:46
Hack:不好意思 剛剛覺得我敘事能力不好.. 所以修一下文章 11/05 12:48
yvb:所以可能會有一列只有一個或兩個數字的情況? 11/05 12:50
Hack:不知道一列有幾個數字.. 11/05 12:51
Hack:但是第一列到最後一列行數都是一定的 11/05 12:52
Hack:只是有的檔案可能三行 像是我舉的例子 有的可能十行這樣Orz 11/05 12:53
danny8376:yvb大的fgets() + sscanf()應該比較簡單www 11/05 13:00
yvb:如果一列可能很多行, 那 fgets() 就不知要多大 buffer 了. 11/05 13:02
yvb:當然如果是自已的資料, 就可以知道每列字數上限就是了. 11/05 13:04
Hack:有人可以簡單寫一個範例借小弟參考嗎Orz 11/05 13:20
CaptainH:那你先把第一列有幾個數字算一下就好啦 XD 11/05 14:05

就是不知道該如何算...XD

MOONRAKER:何不把你寫的貼上來給大家改改。 11/05 14:09
MOONRAKER:既然「卡好久」了,那卡住的東西拿來瞧瞧如何。 11/05 14:10

float Array[579][3]; //目前只能寫死陣列大小
int count = 0;
char str[100];
FILE *fileIN = fopen("input.txt","r");

if(fileIN == NULL) perror("Error\n");
else
{
while( fgets(str,100,fileIN) != NULL )
{
sscanf(str,"%f %f %f",&Array[count][0],
&Array[count][1],&Data[count][2]); //目前只能寫死輸入行數
count++;
}
}

MOON大,我目前只能寫死輸入的行數、列數
陣列大小可能可以用動態陣列解決
但不知道該怎麼解決判斷行數的問題...
※ 編輯: Hack 來自: 140.115.51.180 (11/05 14:27)
※ 編輯: Hack 來自: 140.115.51.180 (11/05 14:28)
flydragon198:用空白來切割字,用換行符號來判斷該列是否結束 11/05 14:38
flydragon198:如果列不知道有幾個數字,就先宣告個大一點的來儲存 11/05 14:38
yvb:那麼, 改試試看 fgets() + strtof()/strtod() 吧. 11/05 15:06
yvb:sscanf() 可以後面先設很多個變數來接, 最後看 return code, 11/05 15:08
yvb:就可以知道讀到幾個有效資料. 11/05 15:08
cutekid:http://ideone.com/T8qQGY 11/05 15:19
Hack:感謝各位前輩的指導 終於寫出來了~ 11/05 16:07
Hack:感謝cutekid大的教學~!!您的code我研究了好一會 好漂亮的寫法 11/05 16:09
Hack:謝謝大家~~~ 11/05 16:09

你可能也想看看

搜尋相關網站