home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_09_12 / 9n12020a < prev    next >
Text File  |  1991-10-15  |  1KB  |  53 lines

  1.     
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.     
  5. #define scr_put(line, colm, c)        /* position cursor and write */ \
  6.     printf("\033[%d;%dH%c", line, colm, c)
  7. #define scr_clr() printf("\033[2J")    /* clear screen */
  8.  
  9. void wait(unsigned int seconds);
  10.  
  11. typedef struct node {
  12.     struct node *pfwd;    /* ptr to next node in list */
  13.     unsigned char line;    /* cursor position line */
  14.     unsigned char colm;    /* cursor position column */
  15.     unsigned char ch;    /* char to be displayed */
  16. } Node;
  17.     
  18. main()
  19. {
  20.     Node *proot_node = NULL;/* start of data list */
  21.     Node *pnode;        /* Node just allocated */
  22.     Node *pprev_node;    /* Node previously allocated */
  23.     unsigned int line, colm;
  24.     unsigned char ch;
  25.     
  26. /* get input data pairs until EOF */
  27.  
  28.     while (1) {
  29. /*        printf("Enter line, colm, char: "); */
  30.         if (scanf("%u %u %c", &line, &colm, &ch) == EOF)
  31.             break;
  32.     
  33.         pnode = malloc(sizeof(Node));
  34.         if (pnode == NULL) {
  35.             fprintf(stderr, "Can't malloc Node\n");
  36.             exit(EXIT_FAILURE);
  37.         }
  38.  
  39.         /* update root on first node only */
  40.  
  41.         if (proot_node == NULL)
  42.             proot_node = pnode;
  43.         else
  44.             pprev_node->pfwd = pnode;
  45.  
  46.         pnode->line = line;
  47.         pnode->colm = colm;
  48.         pnode->ch = ch;
  49.         pnode->pfwd = proot_node;
  50.         pprev_node = pnode;
  51.     }
  52.  
  53.