我已经用C代码编写了一个程序,我目前正在尝试从终端运行它,但是我坚持收到错误Abort Trap: 6
我试过研究修复这个问题,但是无法理解我的代码是怎么回事不会跑。它在Windows PC上运行良好。
这是我的C代码。
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#include <ctype.h>
int main(void)
{
int lineNo = 0, i, j, count = 0, lastno;
char s[7][50], type[50], lastNo[50], new[7][50], firstnum[50], lastnum[50];
char space[2] = " ";
FILE *slots;
slots = fopen("slots.txt", "r");
if(slots == NULL)
{
perror("Error opening slots file");
lineNo = -1;
}
else
{
while( fgets(s[lineNo],sizeof(s[lineNo]), slots)!=NULL)
{
lineNo++;
}
fclose(slots);
}
for(i=0;i<7;i++)
{
sscanf(s[i], "%s %*s %s %s", firstnum, type, lastnum);
if(*lastnum == 'x'){
strcpy((new[--lineNo]),(strcat(firstnum, space)));
strcpy((new[lineNo]), (strcat(new[lineNo], type)));
count = atoi(firstnum);
}
}
for(i=0;i<7;i++)
{
for(j=0;j<7;j++)
{
sscanf(s[j], "%s %*s %s %s", firstnum, type, lastnum);
lastno = atoi(lastnum);
if(lastno == count)
{
strcpy((new[--lineNo]), (strcat(firstnum, space)));
strcpy((new[lineNo]), (strcat(new[lineNo], type)));
count = atoi(firstnum);
i++;
}
}
}
for(i=0;i<7;i++)
{
if(i<6){
printf("(%s)-->", new[i]);
}
else
{
printf("(%s)", new[i]);
}
}
return 0;
}