Novice needs jump-start w/ MVC Studio

Discussion in 'C Programming' started by Blankdraw, Aug 12, 2003.

  1. Blankdraw

    Blankdraw Guest

    I thought I cut out for myself a "simple" 1-module ANSI C programming
    task.
    I will in fact require extensive use of step-thru debugging.

    My old MS Visual C Developer Studio 4.2 should do this, but the
    step-through debugger wants me to locate several files which look like
    system files. I don't know what its problem is. The files are:
    CHKSTK.ASM, CRT0.C, READ.C

    Is there someone here familiar with MVC DS 4.2 that can explain how to
    use the stepper? I have a slew of questions that will overload this
    forum if I were to keep posting them.

    It doesn't seem like the problem should be so hairy (2 program
    approaches follow, no warnings or errors, w/o using stepper):


    APPROACH # 1 ***********************************************************

    My program takes a text file of 5 integers per line, 140-odd lines of
    this, and basically puts it into an 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 about 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;



    fd = open(argv[1], O_RDONLY | O_TEXT);
    /* while (n != CTRL_Z ) /* big loop - begin new records 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 */
    }
    }
    /* hey - break-out read file into buffer, access data 1, access buffer
    many */
    }

    for(row = 0; row < 52; row++)
    {
    printf("\n");
    for (col = 0; col < 140; col++)
    printf ("%d ", current[row][col]);
    }

    /* for(row = 1; row = 52; row++) */
    /* { */
    /* printf ("\n"); */
    /* for (col = 1; col = 140; col++) */
    /* printf ("%i ", current[row][col]); */
    /* } */

    return(0);
    }






    APPROACH # 2 *****************************************************



    #include <stdio.h>
    #include <fcntl.h> /* used by open() */
    #define SIZE 5 /* best = ALL file.txt = 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;
    int n = 1;
    int 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;


    fd = open(argv[1], O_RDONLY | O_TEXT);


    for (count = 0; count < 140; count++) /* big loop - begin records, to
    EOF */
    { /* use ONLY det. loops for try-out
    coding */
    /* fgets(buffer, sizeof buffer, fd); /* read 1 record into
    5-byte 'buffer' */
    sscanf(fd, "%2i%2i%2i%2i%2i", &buffer[0], &buffer[1], &buffer[2],
    &buffer[3], &buffer[4]);
    col++; /* only cols need init
    0-buffer (r[1]c[2] */

    for (n=0; n<5; n++)
    {
    for (row = 0; row < 52; row++)
    {
    current[row][col] = current[row][col-1]; /* copy prv */
    if ( buffer[n] == row ) {
    current[row][col] = current[row][col-1] + 1;
    } /* this IS now a match, so increment the copy */
    }
    }
    }



    /* for(row = 0; row < 52; row++) */
    /* { */
    /* printf("\n"); */
    /* for (col = 0; col < 140; col++) */
    /* printf ("%d ", current[row][col]); */
    /* } */


    return(0);
    }
     
    Blankdraw, Aug 12, 2003
    #1
    1. Advertising

  2. Blankdraw

    Jack Klein Guest

    On 12 Aug 2003 10:19:37 -0700, (Blankdraw) wrote in
    comp.lang.c:

    > I thought I cut out for myself a "simple" 1-module ANSI C programming
    > task.


    Actually, your code is not ANSI conforming, it uses non-standard
    extensions.

    > I will in fact require extensive use of step-thru debugging.


    Debuggers are completely off-topic here. The Microsoft support groups
    live in the news:microsoft.public.vc.* family on the server
    msnews.microsoft.com, if your ISP does not carry them.

    > Is there someone here familiar with MVC DS 4.2 that can explain how to
    > use the stepper? I have a slew of questions that will overload this
    > forum if I were to keep posting them.


    Don't post any questions about Microsoft's debugger or IDE here at
    all, they are all off-topic. See the proper place above.

    [snip]

    > #include <stdio.h>
    > #include <fcntl.h> /* used by open() */


    This header is not part of standard C. The ONLY way to open a file in
    C is fopen().

    > main(argc,argv)
    > int *argv[];


    This style of function definition has been obsolete since 1989. It is
    completely illegal under the current (1999) standard due to the
    implicit int type of main() and argc. And it is completely undefined
    behavior at all times in all situations, because argv is NOT a pointer
    to pointer to INT, it is a pointer to pointer to CHAR.

    [snip]

    > fd = open(argv[1], O_RDONLY | O_TEXT);


    No such function as open() in standard C. Whatever it is and whatever
    it does is defined by your compiler, and not discussed here.

    You need a Microsoft support group for information on using their
    tools, and a good book on standard C.

    --
    Jack Klein
    Home: http://JK-Technology.Com
    FAQs for
    comp.lang.c http://www.eskimo.com/~scs/C-faq/top.html
    comp.lang.c++ http://www.parashift.com/c -faq-lite/
    alt.comp.lang.learn.c-c++ ftp://snurse-l.org/pub/acllc-c /faq
     
    Jack Klein, Aug 13, 2003
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Rodney Edmondson
    Replies:
    3
    Views:
    375
    David Segall
    Nov 25, 2003
  2. rmn190
    Replies:
    2
    Views:
    2,427
    Arne Vajhøj
    Jan 10, 2008
  3. Paulo
    Replies:
    3
    Views:
    501
    Peter Bromberg [C# MVP]
    Dec 4, 2008
  4. Crazy Cat
    Replies:
    1
    Views:
    713
    schepp
    Sep 3, 2009
  5. Eadwine Rose
    Replies:
    2
    Views:
    225
    Eadwine Rose
    Oct 15, 2006
Loading...

Share This Page