看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) FreeBSD 10.1 gcc 4.8.5 版上各為大家好 最近在練習一個程式,使用fopen()開檔讀入資料 目前的想法是想將資料透過fgets()讀入 並一行一行存入一個使用動態配置的二維陣列中 http://imgur.com/0hMsXPg http://imgur.com/2ITqm3A 問題一 不知為何於21行中 fptr如沒重新指向fopen() 下方for迴圈中fgets()所做的事情會被跳過 問題二 將fgets()所得字串存入data[i]中 執行結果會得到segmentation fault (core dumped) 是無法這樣存取嗎? 請問各位高手該如何解決 拜託大家了 最近剛學指標請各位大大多多指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.166.233.182 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1481995242.A.C1D.html
aiwhat: 第一段的敘述:fgetc讀完後會指向下一個字元 12/18 02:01
aiwhat: 問題二是Initialize裡面寫錯了 12/18 02:21
aiwhat: dynamic 2d array 可以參考 z-4-3-1-3 12/18 02:22
感謝說明第一個問題已解決, 但Initialize內二維動態陣列修改後, fgets()仍無法存入data[i]中, 執行結果依然是segmentation fault (core dumped) 還是其他問題呢? 附上程式碼:http://ideone.com/0nA39U ※ 編輯: leon1757tw (220.133.214.137), 12/19/2016 00:02:13 ※ 編輯: leon1757tw (220.133.214.137), 12/19/2016 00:04:33
aiwhat: for 裡面不用 fgets 12/19 10:07
aiwhat: fgets 會把換行符號 '\n' 放進字串,試試把Initialize還有 12/19 10:10
aiwhat: fgets 的 lineMaxChar 換成 lineMaxChar + 1 12/19 10:11
aiwhat: 還要多一個空間放 '\0' 12/19 10:11
謝謝a大的說明, 已經解決了。 ※ 編輯: leon1757tw (220.133.214.137), 12/19/2016 13:45:45