-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