作者a95297 (2+2=0)
看板C_and_CPP
標題[問題] compiler有過可是run的時候會錯誤@@?
時間Tue Feb 3 17:13:49 2009
這這~小弟這個程式很鬼異~過年前跑的時候好好的~
結果剛剛跑的時候卻出現錯誤!!
#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
1F:推 ledia:compile 有過和執行正不正確是兩碼子事 02/03 17:32
2F:→ ledia:你的執行目錄下有 TimeList_1000.txt 嗎? 02/03 17:33
3F:→ a95297:有!! 02/03 17:38
4F:推 ledia:開檔完要檢查 TimeList 是不是 NULL, 還有要看資料是否太多 02/03 17:42
5F:推 po953:Singer[]是char一維陣列 所以應該用%c吧不是%s 02/03 18:39
6F:推 ledia:給樓上, 他用的沒錯, 有取址, 而且一次跳三格, 猜測一筆資料 02/03 23:27
7F:→ ledia:只有五個字元長 (否則會出錯) 02/03 23:27
8F:→ ledia:不是跳三格... 是跳六格 ... 我手打的跟腦袋裡想的不一樣= = 02/03 23:28
9F:→ a95297:l大真明白我的意思~話說還是沒人回答我的問題!! 02/04 12:37
10F:推 ledia:我有回啦, 看看開檔是否成功檢查 TimeList 是不是 NULL 02/04 13:08
11F:→ ledia:確認資料有沒有過多, 檢查 m, k 的值有沒有超過 10000 02/04 13:08
12F:→ ledia:while 那行出錯, 大致上就這兩個可能的問題了吧... 02/04 13:09
13F:→ a95297:TimeList裡面確實有東西~總數也都沒有超過10000~所以我才覺 02/04 13:57
14F:→ a95297:得很奇怪~為啥過個年回來會錯!! 用Dev-c去好卻沒有錯誤!! 02/04 13:57
15F:推 HudsonE:k 沒超過 10000 不代表 m 沒超過 10000 呀... 02/04 18:14
16F:→ a95297:自己發現了~txt檔讀進來的是字元~不能直接用float去讀@@~都 02/04 22:05
17F:→ a95297:沒注意到~很謝謝大家的幫忙^^ 02/04 22:06