Abort Trap:6 - C Mac出错

时间:2017-02-13 18:10:12

标签: c macos terminal

我已经用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;  
}

0 个答案:

没有答案