2013-09-29 126 views
0

我有以下文字:Fscanf裏面不斷崩潰?

ASDCASDSA255878 Jack Jhon 1988 12 
ASDCASDSA255878 Bill Smith 1977 12 

,我有以下代碼:

inputFile = fopen(fileName,"r"); 
char id[50]; 
char fname[50]; 
char lname[50]; 
char year[50]; 
char month[50]; 
while(fscanf(inputFile, "%s %s %s %s %s\n",id,fname,lname,year,month) == 5) 
{ 

} 
fclose(inputFile); 

的文件被打開,如果我把一個printf statment while循環中我可以看到它後它崩潰。

我試着將==5更改爲!=EOF,但同樣的問題。

+1

請提供一個完整的(但簡短的)代碼示例(用'main()'和'#include')。你的全部輸入是上面的2行還是更多? – pts

+3

你不應該將無界數據讀入緩衝區。說一些類似'%49s'的東西是安全的。 –

+0

最有可能的'filename'包含一些數據超過50個字符 – P0W

回答

1

很可能輸入中的單詞長於50個字符。

檢查此問題的最簡單方法是將代碼中出現的所有[50]臨時更改爲輸入文件大小,以便它足夠大。