home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / GCC / GERLIB_USR08B.LHA / gerlib / examples / test / startup / startup_test.cc < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-12  |  1.2 KB  |  68 lines

  1. /* Test for cin/cout from WB */
  2.  
  3. #include <use_amiga_argc_argv.h>
  4.  
  5. #include <fstream.h>
  6. #include <iostream.h>
  7. extern filebuf cin_fb, cout_fb, cerr_fb;
  8.  
  9. UBYTE    **ToolTypes=NULL;     /* for WB-startup */
  10.  
  11. int main(int argc, char *argv[])
  12. {
  13.     if(argc)
  14.     {
  15.         /* Start from CLI */
  16.         cout << "Start from CLI" << endl;
  17.     }
  18.     else
  19.     {
  20.         /* Start from WB */
  21.  
  22.         ToolTypes = ArgArrayInit(argc,(UBYTE **)argv);
  23.  
  24.         stdin=Open(ArgString(ToolTypes,(STRPTR)"WINDOW", (STRPTR)"CON:0/0/640/200/Default Window/AUTO/CLOSE/WAIT"),MODE_NEWFILE);
  25.  
  26.         if(!stdin)
  27.             stdin=Open((STRPTR)"CON:0/0/640/200/Default Window/AUTO/CLOSE/WAIT", MODE_NEWFILE);
  28.  
  29.         stdout=stdin;
  30.         SelectInput(stdin);
  31.         SelectOutput(stdout);
  32.  
  33.         cin_fb.close();
  34.         cin_fb.attach((int)stdin);
  35.         cout_fb.close();
  36.         cout_fb.attach((int)stdout);
  37.         cerr_fb.close();
  38.         cerr_fb.attach((int)stdout);
  39.  
  40.            cin_fb._flags2 |=_DO_NOT_CALL_SYSCLOSE;
  41.            cout_fb._flags2 |=_DO_NOT_CALL_SYSCLOSE;
  42.            cerr_fb._flags2 |=_DO_NOT_CALL_SYSCLOSE;
  43.  
  44.         /* Do something */
  45.  
  46.         cout << "Please enter String :";
  47.  
  48.         char Buffer[80];
  49.  
  50.         cin >> Buffer;
  51.  
  52.         cout << "Buffer :" << Buffer << endl;;
  53.  
  54.         Close(stdin);
  55.  
  56.         stdin=0;
  57.         stdout=0;
  58.         SelectInput(0);
  59.         SelectOutput(0);
  60.  
  61.         cin_fb.close();
  62.         cout_fb.close();
  63.         cerr_fb.close();
  64.     }
  65.  
  66.     return RETURN_OK;
  67. }
  68.