2013-05-12 17 views
-1
fscanf(ifile, "%c", &jnk); 
/* If there's a height, this will be a ". if not, it'll be a ,*/ 
if ((jnk = '\"') || (jnk != ',')) { 
    printf("%c", jnk); 
    while(fscanf(ifile, "%c", &data) && data != ',' && data != '\"' && data != '\'') { 
     printf(" %c ", data); 
     weight[a]= data; 
     a++; 
    } 
    weight[a] = '\0'; 
    player[n].weight=atof(weight); 
    printf("%.0f ", player[n].weight); 
} else if(data == ' ' || data == ',') { 
    player[n].weight= 0; 
    printf("%.0f ", player[n].weight); 
} 

GDB告訴我把數據存入重量給我seg故障。誰能告訴我爲什麼?重量C上的故障Seg [a] =數據;

+1

請問您是否可以嘗試重新格式化,以便它不在同一行?請[編輯]你的問題,這樣做。 (並在提交之前查看預覽。) – Mat 2013-05-12 16:47:28

+0

這個問題可以更詳細地闡述一下嗎?知道什麼是jnk的數據類型會很有趣 – 2013-05-12 16:47:59

+2

「a」聲明在哪裏?它是否初始化爲零? 「重量」聲明看起來像什麼?我們需要看到更多的代碼來確定問題出在哪裏。 – 2013-05-12 16:56:30

回答

0

的問題是在這裏:

我希望你分配",到。而當你使用weight[a],你會得到一個錯誤,因爲字符的ASCII值取,這可能是出於你已經宣佈

0

數組大小的界限,我認爲這個問題是不是在這裏,

fscanf(ifile, "%c", &data) 

printf(" %c ", data); 

根據數據的數據類型,有在你解釋這個變量的方式不對,也取決於什麼是你定義不同變量的初始值。