Listing 3
using namespace System;
using namespace System::Text;
using namespace System::IO;
void Copy(TextReader^ inStream, TextWriter^ outStream);
int main()
{
String^ str = "abcde";
/*1*/ StringReader^ inStream = gcnew StringReader(str);
/*2*/ StringWriter^ outStream = gcnew StringWriter;
/*3*/ StringBuilder^ sb = outStream->GetStringBuilder();
Console::WriteLine("Capacity is {0}", sb->Capacity);
/*4*/ outStream->Write(static_cast<wchar_t>(inStream->Read()));
// read/write the a
outStream->Write('!'); // write a !
outStream->Write(static_cast<wchar_t>(inStream->Read()));
// read/write the b
outStream->Flush();
outStream->Write("Result = {0,4:0.##}", 10.0/3);
// write formatted text
/*5*/ Console::WriteLine(outStream); // calls StringWriter::ToString
/*6*/ Copy(inStream, outStream);
/*7*/ Console::WriteLine(outStream);
/*8*/ Console::WriteLine(sb); // calls StringBuilder::ToString
/*9*/ inStream->Close();
outStream->Close();
}
void Copy(TextReader^ inStream, TextWriter^ outStream)
{
int c;
while ((c = inStream->Read()) != -1)
{
outStream->Write(static_cast<wchar_t>(c));
}
}