home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 January / PCWorld_2000-01_cd.bin / Software / Servis / Devc / _SETUP.5 / Group14 / all.c next >
C/C++ Source or Header  |  1997-11-06  |  1KB  |  47 lines

  1. /*
  2.  * A sample program demonstrating how to use _CRT_fmode to change the default
  3.  * file opening mode to binary AND change stdin, stdout and stderr. Redirect
  4.  * stdout to a file from the command line to see the difference.
  5.  *
  6.  * Also try directing a file into stdin. If you type into stdin you will get
  7.  * \r\n at the end of every line... unlike UNIX. But at least if you
  8.  * redirect a file in you will get exactly the characters in the file as input.
  9.  *
  10.  * THIS CODE IS IN THE PUBLIC DOMAIN.
  11.  *
  12.  * Colin Peters <colin@fu.is.saga-u.ac.jp>
  13.  */
  14.  
  15. #include <stdio.h>
  16. #include <fcntl.h>
  17.  
  18. unsigned int _CRT_fmode = _O_BINARY;
  19.  
  20. main ()
  21. {
  22.     char* sz = "This is line one.\nThis is line two.\n";
  23.     FILE*    fp;
  24.     int    c;
  25.  
  26.     printf (sz);
  27.  
  28.     /* Note how this fopen does NOT indicate "wb" to open the file in
  29.      * binary mode. */
  30.     fp = fopen ("all.out", "w");
  31.  
  32.     fprintf (fp, sz);
  33.  
  34.     fclose (fp);
  35.  
  36.     if (_isatty (_fileno(stdin)))
  37.     {
  38.         fprintf (stderr, "Waiting for input, press Ctrl-Z to finish.\n");
  39.     }
  40.  
  41.     while ((c = fgetc(stdin)) != EOF)
  42.     {
  43.         printf ("\'%c\' %02X\n", (char) c, c);
  44.     }
  45. }
  46.  
  47.