程序中需要在执行菜单操作“文件->打开”后,将被打开的文件内容在窗口中显示出来,程序如下:
void CTextView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here CString filepath=pDoc->filepath; //得到被打开文件的路径和文件名 FILE *fpDoc,*fpBkp;
char c;
int hang=0;
int lie=0; while(!feof(fpDoc))
{
fscanf(fpDoc,"%c",&c);
if(c!='\n')
{
pDC->TextOut(lie*10,hang*20,c);
lie=lie+1;
}
else
{
lie=0;
hang=hang+1;
}
}
fclose(fpDoc);
}为什么文件中的汉字显示出来是乱码?而且文件中但凡有"tab"的地方总是在正确显示"tab"后自动加上"|"?
void CTextView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here CString filepath=pDoc->filepath; //得到被打开文件的路径和文件名 FILE *fpDoc,*fpBkp;
char c;
int hang=0;
int lie=0; while(!feof(fpDoc))
{
fscanf(fpDoc,"%c",&c);
if(c!='\n')
{
pDC->TextOut(lie*10,hang*20,c);
lie=lie+1;
}
else
{
lie=0;
hang=hang+1;
}
}
fclose(fpDoc);
}为什么文件中的汉字显示出来是乱码?而且文件中但凡有"tab"的地方总是在正确显示"tab"后自动加上"|"?
ls1=(const char *)c_Text; //文本内容
cd=strlen(ls1); //文本字符长度 while(cd>0) //绘出所有的字符
{
c1=*ls1;
c2=*(ls1+1);
if(c1>127&&c2>127) //如果是一个汉字
{
strncpy(bz,ls1,2);//拷贝一个汉字到bz中
bz[2]=0;
ls1=ls1+2; //跳过汉字指向下一个字符位置
pDC->TextOut(cc1,cc2,bz); //在屏幕上写这个汉字
cd=cd-2; //字符数减2
}
else //如果是一个西文字符
{
strncpy(bz,ls1,1); //拷贝一个字符到bz中
bz[1]=0;
ls1++; //跳过这一个字符到下一个字符
pDC->TextOut(cc1,cc2,bz);//在屏幕上写字符
cd=cd-1; //字符数减1
}
}