C++编程时出现的怪事,知道的速速解答啊

今天写昨天老是不会下来的题目关于稀疏矩阵的
#include
#include
using namespace std;
#define maxsize 8
#ifndef ABC
#define ABC

typedef struct
{
int i; //行号
int j; //列号
int e; //元素值
}Triple;

typedef struct{
Triple data[maxsize+1]; //data[0]不用
int mu,nu,tu; //行数,列数,元素个数
}TSMatrix;
void CreatTMatrix(TSMatrix &m,ifstream in)
{

in>>m.mu;
in.ignore();
in>>m.nu;
in.ignore();
in>>m.tu;
in.ignore();
int num;
int k=1;
for(int ii=0;ii<m.mu;ii++)
{
    for(int jj=0;jj<m.nu;jj++)
    {
        if(!in.eof())
        {
        in>>num;
        if(num!=0)
        {
            m.data[k].e=num;
            m.data[k].i=ii;
            m.data[k].j=jj;
            k++;
        }
        if(k<=m.tu)
        in.ignore();
        }
    }
}

}void main()
{
TSMatrix m1;
ifstream in("M1.txt");

CreatTMatrix(m1,in);
//PrintTMatrix(m1);
in.close();cout<<"ok";
}
ok可以打印出来,但是老是运行不了

现在都是在程序末尾加exit(0)来继续啊,我也是醉了

运行不出来,没有什么提示吗

是不是少了个#endif