Ok, risolto! Il ciclo funzionava bene. Ho scoperto che facendo così:
codice:
Form1->RichEdit1->Text +=  (line + '\n').c_str();
non andava, mentre senza il +=, ossia così:
codice:
Form1->RichEdit1->Text =  Form1->RichEdit1->Text + (line + '\n').c_str();
va perfettamente. Chissà come mai.

PS: Comunque uso CodeGear C++ Builder 2010 per la grafica.