B
Blankdraw
I'm getting NO errors and 2 warnings with this code. I thought I was
ready to write the output-formatting segment, but may be way off the
mark now. The warnings say that "OPEN() and READ() are undeclared -
assuming an external is returning integer values." This is not the
source of the problem.
Step-Thru causes the system to demand the location of system-sounding
files like: CHKSTK.ASM, CRT0.C, READ.C. With no real debugger
feedback, I can't do nuthin. Step-Thru seems to get caught in an
infinite loop, but I can't figger what its doing.
Can someone here tell me why my console is idle but for the blinking
cursor? I've come a long way to give up now.
My program takes a text file of 5 integers per line, 140-odd lines of
this, and basically transforms it into a 2D array. The lines are
separated by LF-CR, of course.
The integers have to be matched in value with the rows in the array,
and my formatted printout will show 52 rows of integers. The
integers will be exactly as numerous as the rows in the text file are,
so it will show 52 rows by 140 columns.
The array rows will be made of integers only increasing in value,
because each of the 5 integers-per-line in the text will be matched
with a given array row according to the integer's actual value, and
these integers repeatedly match and increment the row values as the
rows progress from left-to-right (as read). Many previous array
values repeat because there is not often a match with the text data.
INPUT n1 n2 n3 n4 n5 LFCR
n6 n7 n8 n9 n10 ....
OUTPUT
0 0 0 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 (... 140 columns of this )
....5 5 5 5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 3 3 3 3 3 3 3 3 3 3 ... 3 3 3
3 4 4 4
(52 rows of this)
#include <stdio.h>
#include <fcntl.h> /* used by open() */
#define SIZE 1024 /* 140 x 7bytes, incl 1LF */
#define CTRL_Z '\032' /* text-mode EOF */
main(argc,argv)
int *argv[];
{
char buffer[SIZE]; /* hafta make do w/o int decl */
int fd;
long int n=1;
long count = 0;
int current[52][141]; /* r52c141 array, built-up */
int row; /* from repeat passes of a */
int col; /* current element index */
/* 52r140c printout omits init col - used for its 0's */
for (row = 0; row < 52; row++) /* initialize output array */
{
for(col = 0; col < 141; col++)
current[row][col] = 0;
}
row = 0;
col = 1;
/* problem has to be between here and the output loops */
fd = open(argv[1], O_RDONLY | O_TEXT);
/* while (n != CTRL_Z ) /* big loop - begin new dwg date to EOF
*/
while (n > 0 ) /* big loop - begin new dwg date to EOF
*/
{ col++; /* only cols need init 0-buffer: (r[1]c[2] */
while ( (n = read(fd,buffer,SIZE)) != '\n' ) /* skip CR-LF */
{
for ( row = 0; row = 52; row++ )
{
current[row][col] = current[row][col-1]; /* copy prv */
if ( n == row )
{
current[row][col] = current[row][col-1] + 1;
} /* this IS now a match, so increment the copy */
}
}
/* shld break-out read file into buffer, access data 1, access buffer
many */
}
for(row = 0; row < 52; row++) /* output loops */
{
printf("\n");
for (col = 0; col < 140; col++)
printf ("%d ", current[row][col]);
}
return(0);
}
ready to write the output-formatting segment, but may be way off the
mark now. The warnings say that "OPEN() and READ() are undeclared -
assuming an external is returning integer values." This is not the
source of the problem.
Step-Thru causes the system to demand the location of system-sounding
files like: CHKSTK.ASM, CRT0.C, READ.C. With no real debugger
feedback, I can't do nuthin. Step-Thru seems to get caught in an
infinite loop, but I can't figger what its doing.
Can someone here tell me why my console is idle but for the blinking
cursor? I've come a long way to give up now.
My program takes a text file of 5 integers per line, 140-odd lines of
this, and basically transforms it into a 2D array. The lines are
separated by LF-CR, of course.
The integers have to be matched in value with the rows in the array,
and my formatted printout will show 52 rows of integers. The
integers will be exactly as numerous as the rows in the text file are,
so it will show 52 rows by 140 columns.
The array rows will be made of integers only increasing in value,
because each of the 5 integers-per-line in the text will be matched
with a given array row according to the integer's actual value, and
these integers repeatedly match and increment the row values as the
rows progress from left-to-right (as read). Many previous array
values repeat because there is not often a match with the text data.
INPUT n1 n2 n3 n4 n5 LFCR
n6 n7 n8 n9 n10 ....
OUTPUT
0 0 0 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 (... 140 columns of this )
....5 5 5 5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 3 3 3 3 3 3 3 3 3 3 ... 3 3 3
3 4 4 4
(52 rows of this)
#include <stdio.h>
#include <fcntl.h> /* used by open() */
#define SIZE 1024 /* 140 x 7bytes, incl 1LF */
#define CTRL_Z '\032' /* text-mode EOF */
main(argc,argv)
int *argv[];
{
char buffer[SIZE]; /* hafta make do w/o int decl */
int fd;
long int n=1;
long count = 0;
int current[52][141]; /* r52c141 array, built-up */
int row; /* from repeat passes of a */
int col; /* current element index */
/* 52r140c printout omits init col - used for its 0's */
for (row = 0; row < 52; row++) /* initialize output array */
{
for(col = 0; col < 141; col++)
current[row][col] = 0;
}
row = 0;
col = 1;
/* problem has to be between here and the output loops */
fd = open(argv[1], O_RDONLY | O_TEXT);
/* while (n != CTRL_Z ) /* big loop - begin new dwg date to EOF
*/
while (n > 0 ) /* big loop - begin new dwg date to EOF
*/
{ col++; /* only cols need init 0-buffer: (r[1]c[2] */
while ( (n = read(fd,buffer,SIZE)) != '\n' ) /* skip CR-LF */
{
for ( row = 0; row = 52; row++ )
{
current[row][col] = current[row][col-1]; /* copy prv */
if ( n == row )
{
current[row][col] = current[row][col-1] + 1;
} /* this IS now a match, so increment the copy */
}
}
/* shld break-out read file into buffer, access data 1, access buffer
many */
}
for(row = 0; row < 52; row++) /* output loops */
{
printf("\n");
for (col = 0; col < 140; col++)
printf ("%d ", current[row][col]);
}
return(0);
}