我读取文件,把它做一个字符串,然后把每一个字符取出存入VECTOR容器,然后输出到VIEW视窗,用了一个FOR循环,只实现了竖向输出,并没有实现横向换行输出,请问,要实现横向换行输出,这个FOR循环该如何编写?源码如下:
void C路桥工程View::OnFileOpen()
{
// TODO: 在此添加命令处理程序代码
if (!sum1.empty())
{
sum1.clear();
}
CFileDialog fileDlg(TRUE);
CString title1;
title1 = "打开文件";
CString filter1;
filter1 = "Text Files(*.txt)";
fileDlg.m_ofn.lpstrTitle = title1;
fileDlg.m_ofn.lpstrFilter = filter1;
if (IDOK == fileDlg.DoModal())
{
CFile file(fileDlg.GetFileName(), CFile::modeRead);
char *pBuf;
CString duzi1;
DWORD dwFileLen;
int wzcd1;
dwFileLen = file.GetLength();
wzcd1 = file.GetLength();
pBuf = new char[dwFileLen + 1];
pBuf[dwFileLen] = 0;
file.Read(pBuf, dwFileLen);//读取文件
file.Close();
MessageBox((CString)pBuf);
duzi1 = pBuf;
int number1=duzi1.GetLength();
//char* array=new char(number1);
CString array1;
for(int i2=0;i2<number1;i2++)
{
array1 = duzi1.GetAt(i2);//输出的字符
sum1.push_back(array1);//每个字符存入容器
}
CDC* pDC=GetDC();
TEXTMETRIC tm2;
pDC->GetTextMetrics(&tm2);
int i1;
int p1;
int f1;
int i3 = sum1.size();//字符个数
int p2 = 1024 / tm2.tmAveCharWidth;//横向输出字符个数
int f2 = i3 / p2;//共有多少行
for (f1=0,p1 = 0,i1=0;f1<=f2,p1 <= p2,i1<i3;f1++,p1++,i1++)
{
pDC->TextOut(tm2.tmAveCharWidth*p1, tm2.tmHeight*f1, sum1[i1]);//输出字符到VIEW,这是竖向的,不知横向如何输出?
}
ReleaseDC(pDC);
}
}