-1
我對編程非常陌生,我試圖編寫代碼讀取「numbers.tsv4」(.tsv4表示製表符分隔值,4表示一行)並將數字放入數組中。現在我只關注計算文件中數字的數量,所以我可以初始化數組的大小。在C中打開文件時出現分段錯誤?
int main(void)
{
int cur;
FILE* spData;
int size=1;
spData = fopen("numbers.tsv4", "r");
while ((cur = fgetc(spData)) != EOF) {
if ((cur = fgetc(spData)) == '\t') {
size++;}
}
fclose(spData);
printf("%d", size);
return;
}
我不斷收到一個分段錯誤,我改變了很多東西,試圖找出它。有人能幫我一把嗎?謝謝!
您的segfault最可能的原因是「numbers.tsv4」不存在,fopen返回NULL,您的代碼無法檢查它,並且fgetc(NULL)炸燬。附:否則,整體邏輯無論如何都會被徹底打破。它平均無法統計文件中一半的製表符。 –
你是否調試過它來發現在段錯誤之前發生了什麼? – Carcigenicate