Это чудо, что это работает для некитайского текста. «\ n» не является разделителем строк в RTF, «\ par» - это. Шансы на то, что больший урон нанесен заголовку RTF, безусловно, больше для китайцев.
C ++ - не лучший язык для решения этой проблемы. Это простая 5-минутная программа на C #, если файл не становится слишком большим:
using System;
using System.Windows.Forms; // Add reference
class Program {
static void Main(string[] args) {
var rtb = new RichTextBox();
rtb.LoadFile(args[0], RichTextBoxStreamType.RichText);
var lines = rtb.Lines;
for (int ix = 0; ix < lines.Length; ++ix) {
lines[ix] = "<item>" + lines[ix] + "</item>";
}
rtb.Lines = lines;
rtb.SaveFile(args[0], RichTextBoxStreamType.RichText);
}
}
Если C ++ является жестким требованием, вам придется найти анализатор RTF.