[問題] compiler有過可是run的時候會錯誤@@?

看板C_and_CPP (C/C++)作者 (2+2=0)時間16年前 (2009/02/03 17:13), 編輯推噓6(6011)
留言17則, 4人參與, 最新討論串1/1
這這~小弟這個程式很鬼異~過年前跑的時候好好的~ 結果剛剛跑的時候卻出現錯誤!! #include <stdio.h> #include <stdlib.h> #include <string.h> void main() { FILE *TimeList; int i=0,k=0,m=0; float CompareStart_Time[10000],CompareOff_Time[10000]; char Singer[10000]; TimeList=fopen("TimeList_1000.txt","r"); while( (fscanf(TimeList,"%f %f %s",&CompareStart_Time[k], &CompareOff_Time[k],&Singer[m]))!=EOF){ <==這邊和while那行是同一行~ 礙於板面所以在這邊換行!! k++; m+=6; } printf("QQQQQ\n"); fclose(TimeList); } 請問我有哪邊有弄錯嗎? 跑到while那行C就跳出 紅色XX的視窗!! 另外想請問一下大家~小弟用的是VC6 因為是接之前學長的電腦關係~ 有看到板友說要去抓一些關於VC6的更新檔更新~請問是要去哪邊抓勒? 是Microsoft嗎? 有好心人士可以提供一下網址嗎? 謝謝囉!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.124.72.230

02/03 17:32, , 1F
compile 有過和執行正不正確是兩碼子事
02/03 17:32, 1F

02/03 17:33, , 2F
你的執行目錄下有 TimeList_1000.txt 嗎?
02/03 17:33, 2F

02/03 17:38, , 3F
有!!
02/03 17:38, 3F

02/03 17:42, , 4F
開檔完要檢查 TimeList 是不是 NULL, 還有要看資料是否太多
02/03 17:42, 4F

02/03 18:39, , 5F
Singer[]是char一維陣列 所以應該用%c吧不是%s
02/03 18:39, 5F

02/03 23:27, , 6F
給樓上, 他用的沒錯, 有取址, 而且一次跳三格, 猜測一筆資料
02/03 23:27, 6F

02/03 23:27, , 7F
只有五個字元長 (否則會出錯)
02/03 23:27, 7F

02/03 23:28, , 8F
不是跳三格... 是跳六格 ... 我手打的跟腦袋裡想的不一樣= =
02/03 23:28, 8F

02/04 12:37, , 9F
l大真明白我的意思~話說還是沒人回答我的問題!!
02/04 12:37, 9F

02/04 13:08, , 10F
我有回啦, 看看開檔是否成功檢查 TimeList 是不是 NULL
02/04 13:08, 10F

02/04 13:08, , 11F
確認資料有沒有過多, 檢查 m, k 的值有沒有超過 10000
02/04 13:08, 11F

02/04 13:09, , 12F
while 那行出錯, 大致上就這兩個可能的問題了吧...
02/04 13:09, 12F

02/04 13:57, , 13F
TimeList裡面確實有東西~總數也都沒有超過10000~所以我才覺
02/04 13:57, 13F

02/04 13:57, , 14F
得很奇怪~為啥過個年回來會錯!! 用Dev-c去好卻沒有錯誤!!
02/04 13:57, 14F

02/04 18:14, , 15F
k 沒超過 10000 不代表 m 沒超過 10000 呀...
02/04 18:14, 15F

02/04 22:05, , 16F
自己發現了~txt檔讀進來的是字元~不能直接用float去讀@@~都
02/04 22:05, 16F

02/04 22:06, , 17F
沒注意到~很謝謝大家的幫忙^^
02/04 22:06, 17F
文章代碼(AID): #19Y0hGI7 (C_and_CPP)
文章代碼(AID): #19Y0hGI7 (C_and_CPP)