home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / datafiles / text / c_manual / system / amigados / example1.c < prev    next >
C/C++ Source or Header  |  1995-02-27  |  3KB  |  112 lines

  1. /***********************************************************/
  2. /*                                                         */
  3. /* Amiga C Encyclopedia (ACE) V3.0      Amiga C Club (ACC) */
  4. /* -------------------------------      ------------------ */
  5. /*                                                         */
  6. /* Book:    ACM System                  Amiga C Club       */
  7. /* Chapter: AmigaDOS                    Tulevagen 22       */
  8. /* File:    Example1.c                  181 41  LIDINGO    */
  9. /* Author:  Anders Bjerin               SWEDEN             */
  10. /* Date:    92-05-02                                       */
  11. /* Version: 1.10                                           */
  12. /*                                                         */
  13. /*   Copyright 1992, Anders Bjerin - Amiga C Club (ACC)    */
  14. /*                                                         */
  15. /* Registered members may use this program freely in their */
  16. /*     own commercial/noncommercial programs/articles.     */
  17. /*                                                         */
  18. /***********************************************************/
  19.  
  20. /* This program collects ten integer values from the user, and saves    */
  21. /* them in a file ("HighScore.dat") on the RAM disk. The memory is then */
  22. /* cleared, and the file cursor is moved to the beginning of the file.  */
  23. /* The file is then loaded into the memory again, and printed out.      */
  24.  
  25.  
  26.  
  27. #include <libraries/dos.h>
  28.  
  29.  
  30. void main();
  31.  
  32. void main()
  33. {
  34.   struct FileHandle *file_handle;
  35.   int highscore[ 10 ];
  36.   long bytes_written;
  37.   long bytes_read;
  38.   int loop;  
  39.  
  40.  
  41.  
  42.   /* Let the user enter ten integer values: */
  43.   for( loop=0; loop < 10; loop++ )
  44.   {
  45.     printf("Highscore[%d]: ", loop );
  46.     scanf("%d", &highscore[ loop ] );
  47.   }
  48.  
  49.  
  50.  
  51.   /* Try to open file "HighScore.dat" as a new file:  */
  52.   /* (If the file does not exist, it will be created. */
  53.   /* If it, on the the other hand, exist, it will be  */
  54.   /* overwritten.)                                    */
  55.   file_handle = (struct FileHandle *)
  56.     Open( "RAM:HighScore.dat", MODE_NEWFILE );
  57.   
  58.   /* Have we opened the file successfully? */
  59.   if( file_handle == NULL )
  60.   {
  61.     printf("Could not open the file!\n");
  62.     exit();
  63.   }
  64.  
  65.  
  66.  
  67.   /* We have now opened a file, and are ready to start writing: */
  68.   bytes_written = Write( file_handle, highscore, sizeof( highscore ) );
  69.  
  70.   if( bytes_written != sizeof( highscore ) )
  71.   {
  72.     printf("Could not save the Highscore list!\n");
  73.     Close( file_handle );
  74.     exit();
  75.   }
  76.   else
  77.     printf("Highscore saved successfully!\n");
  78.  
  79.  
  80.  
  81.   printf("Memory cleared!\n");
  82.   
  83.   for( loop=0; loop < 10; loop++ )
  84.     highscore[ loop ] = 0;  
  85.  
  86.  
  87.  
  88.   printf("Loading Highscore!\n");
  89.  
  90.   Seek( file_handle, 0, OFFSET_BEGINNING );
  91.  
  92.   bytes_read = Read( file_handle, highscore, sizeof( highscore ) );
  93.  
  94.   if( bytes_written != sizeof( highscore ) )
  95.   {
  96.     printf("Could not read the Highscore list!\n");
  97.     Close( file_handle );
  98.     exit();
  99.   }
  100.  
  101.  
  102.  
  103.   /* Print out the numbers: */
  104.   for( loop=0; loop < 10; loop++ )
  105.     printf("Highscore[%d] = %5d\n", loop, highscore[ loop ] );
  106.  
  107.  
  108.  
  109.   /* Close the file: */
  110.   Close( file_handle );
  111. }
  112.