文字列を行ごとに分けるプログラムを書いてみた。こんな感じでいいのかな・・

BOOL GetNextLine(LPCTSTR& pSrc, CString& Line) {
if(!pSrc) return FALSE;
if(!*pSrc) {
Line.Empty();
pSrc = NULL;
return TRUE;
}
LPTSTR pLF = _tcschr(pSrc, '\n');
if(!pLF) {
Line = pSrc;
pSrc = NULL;
return TRUE;
}
INT nLen = pLF - pSrc;
LPTSTR pBuf = Line.GetBufferSetLength(nLen);
_tcsncpy(pBuf, pSrc, nLen);
Line.ReleaseBuffer(nLen);
pSrc += nLen + 1;
return TRUE;
}

whileで回して使う。
while(GetNextLine(pSrc, Line)){nNumLines++; }