[問題] 把txt擋裡的資料放入陣列

看板C_and_CPP (C/C++)作者 (白飯)時間16年前 (2010/03/21 02:04), 編輯推噓4(4013)
留言17則, 3人參與, 最新討論串1/1
如題 雖然之前的問題還沒有解出來Orz 但是有點頭緒 所以我請益大大這種能行得通嗎? 把txt擋裡的資料放入陣列裡面 (假設那檔案是input) 有分行 就是有\n換行符號 所以第一行就存到陣列1 第二行就存到陣列2...類推 然後隨便找一行輸出在output檔案 舉例 input.txt內容 22222 88888 33333 44444 55555 66666 把每一行存在陣列後 接著我想要把第三行印出在output 用那陣列來印出 就變成 output.txt內容 33333 程式碼 #include<stdio.h> #include<stdlib.h> int main() { char line[100]; FILE *inp = fopen ("input.txt", "r"); FILE *outp = fopen ("output.txt", "w"); if(inp != NULL) { for(int i=0;i<100;i++) { fscanf(inp,"%d", &line[i]); } fprintf(outp,"%d", line[2]); } fclose (inp); fclose (outp); return 0; } 是哪裡有錯= = 印不出來 拜託大大指點改正一下 順便一題input檔都是數字 沒有符號之類 可以用%d型態 如果你想要用%s型態也可以@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.154.4 ※ 編輯: kiki86151 來自: 218.160.154.4 (03/21 02:09)

03/21 02:10, , 1F
1. 你要用%d讀, 就表示把資料視為整數, 那你為什麼用
03/21 02:10, 1F

03/21 02:10, , 2F
char []來存??
03/21 02:10, 2F

03/21 02:14, , 3F
2. output.txt裡什麼都沒有?? 檔案有建出來嗎?_?
03/21 02:14, 3F

03/21 02:15, , 4F
3. 你的input.txt有100筆資料嗎?? 檔案沒那麼多資料會如
03/21 02:15, 4F

03/21 02:15, , 5F
何?? 不過更重要的是要是真有100筆, 因為1.說的原因,
03/21 02:15, 5F

03/21 02:15, , 6F
就準備access到不合法的計憶體空間了XD
03/21 02:15, 6F

03/21 02:17, , 7F
在for裡面塞一個printf來debug吧…
03/21 02:17, 7F

03/21 02:28, , 8F
試了一下, 不是印不出來吧?? 是印的結果有錯吧??
03/21 02:28, 8F

03/21 02:29, , 9F
錯誤的答案可以解釋, 不過有點懶, 注意第1.吧, 不然就像
03/21 02:29, 9F

03/21 02:29, , 10F
t大的建議, 每讀完一筆, 就把前面幾個line[]都印出來看.
03/21 02:29, 10F

03/21 21:33, , 11F
是的output裡面什麼都沒有 我把char改成int也不行0.0
03/21 21:33, 11F

03/21 21:34, , 12F
至於第三點 我只不過假設有100個資料 但是實際上可能會
03/21 21:34, 12F

03/21 21:34, , 13F
03/21 21:34, 13F

03/21 22:27, , 14F
我跑可是有印出東西喔, 雖然印的內容是錯的....
03/21 22:27, 14F

03/21 22:29, , 15F
改成int還是錯的?? 這就有點奇了喔, 改int我就跑正確了.
03/21 22:29, 15F

03/21 23:44, , 16F
我已經正確印出來了 哈哈謝謝囉 可以指定行 最後我在試
03/21 23:44, 16F

03/21 23:45, , 17F
另一個問題 用不出來再請益大大們吧Orz
03/21 23:45, 17F
文章代碼(AID): #1BfGuPs5 (C_and_CPP)
文章代碼(AID): #1BfGuPs5 (C_and_CPP)