C++/CLI. Write to buffer (change cout on char buffer) and get string data from char buffer

Работая над проектом возникла необходимость в перехвате (громко сказано) стандартного вывода ( printf() ) для анализа того, с чем же приходилось работать. Далеко не копая, воспользовался "C"-шной функцией - sprintf(). Здесь небольшой faq. Данная функция на выходе все кладет в буфер. Приведу примерчик:

#include <stdio.h>

int main( void )
{
   char  buffer[200];
   int   j;
   


   /* Format and print various data: */
   j  = sprintf( buffer,     "   First string\n");
   j += sprintf( buffer + j, "   Second string\n");
   

   printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
}

 

 

 

 
В итоге имеем:

Output:

First string

Second string

character count = 25

 

 

 

 
 То, что нужно. Далее снова появилась мини-задачка: буфер - он и в Африке буфер, мне нужны были содержащиеся в нем данные, в частности - все "пойманные" строки. Их нужно было извлечь. Так как проект разрабатывался с помощью Microsoft Visual C++ 9.0 Express Edition (этого было достаточно :) ), то для сие нужды воспользовался методом gcnew String() (в следствие C++/CLI).
Он нужен для convert from 'char *' to 'System::String ^' . И снова пример:

// some code

char buffer[16];
String ^str;

sprintf(buffer, "Testing...\0");
   
str = gcnew String(buffer);
this->textBox1->AppendText(str);

// some code

И о чудо, я вновь "вижу" :)
Кстати, скоро новый год, еще  21 день. Заранее всех с наступающим :)