rendered paste body#include <stdio.h>
#include <string.h>
int val;
struct node{struct node *prev;int row;int col;int val;struct node *next;};
struct matrix{int rows;int cols;int points;struct node data[];};// mat;
int readin(char filename[])
{
FILE *f;
char s[1048576];
f=fopen(filename,"r");
if (!f)
return 1;
while (fgets(s,1048576,f)!=NULL)
{
val++;
}
fclose(f);
val--;
struct node nodes[val];
struct matrix mat;
mat.points=val;
memcpy(mat.data,nodes,val);
f=fopen(filename,"r");
if (!f)
return 1;
struct node start,finish;
mat.data[0].prev=&start;
mat.data[0].next=&finish;
if ((fgets(s,1048576,f)!=NULL))
{
mat.rows = atoi(strtok(s, " "));
mat.cols = atoi(strtok(NULL, " "));
}
if ((fgets(s,1048576,f)!=NULL))
{
char* savePtr;
printf(s);
//mat.data[0].row = atoi(strtok_r(s, " \t", &savePtr));
char *temp=strtok_r(s, " \t", &savePtr);
printf(temp);
printf("\n'%s'\n", savePtr);
mat.data[0].col = atoi(strtok_r(NULL, " ", &savePtr));
printf("2\n");
printf("'%s'\n", savePtr);
mat.data[0].val = atoi(strtok_r(NULL, " ", &savePtr));
printf("3\n");
printf("'%s'\n", savePtr);
/*printf(s);
mat.data[0].row = atoi(strtok(s, " "));
printf("1\n");
printf(strtok(NULL, " "));
printf("1b\n");
mat.data[0].col = atoi(strtok(NULL, " "));
printf("2\n");
mat.data[0].val = atoi(strtok(NULL, " "));
printf("3\n");*/
}
int i,j,done;
val=1;
/*
while (fgets(s,1048576,f)!=NULL)
{
done=0;
mat.data[val].row = atoi(strtok(s, " "));
mat.data[val].col = atoi(strtok(NULL, " "));
mat.data[val].val = atoi(strtok(NULL, ""));
for (i=0;i<=val;i++)
{
if (mat.data[val].row >= (*mat.data[i].next).row)
{
for (j=i;j<=val;j++)
{
if (mat.data[val].col >= (*mat.data[j].next).col)
{
mat.data[val].prev=&mat.data[j];
mat.data[val].next=mat.data[j].next;
(*mat.data[j].next).prev=&mat.data[val];
mat.data[j].next=&mat.data[val];
if (done)
{
break;
}
}
}
}
if (done)
{
break;
}
}
val++;
}
*/
fclose(f);
return 0;
}