Listing 1

using namespace System;
/*1*/ using namespace System::IO;

void Copy(TextReader^ inStream, TextWriter^ outStream);

int main()
{
/*2*/ TextReader^ inStream = Console::In;
/*3*/ TextWriter^ outStream = Console::Out;

/*4*/ outStream->Write(static_cast<wchar_t>(inStream->Read()));
  outStream->Write(static_cast<wchar_t>(inStream->Read()));
/*5*/ outStream->Flush();

  array<wchar_t>^ buffer = {L'w', L'x', L'y', L'z'};
/*6*/ inStream->Read(buffer, 1, 2);
/*7*/ outStream->Write(buffer);

/*8*/ Copy(inStream, outStream);

/*9*/ outStream->Write("{0} * {1} = {2}\n", 10, 5, 10 * 5);
/*10*/  inStream->Close();
/*11*/  outStream->Close();
}

/*12*/
void Copy(TextReader^ inStream, TextWriter^ outStream)
{
/*13*/  int c;

  while ((c = inStream->Read()) != -1)
  {
    outStream->Write(static_cast<wchar_t>(c));
  }
}