用VC6写的一个简单程序,实现在点击打开时读入指定目录下的多行文本。
界面如下(很丑):
指定文件1.txt文件内容为:
abcd
abc
ab
但是运行生成的结果是:
abcd
abc
ab
ab
最后一行输出了两次,这是什么原因?
请详细说明一下,多谢~~~
打开按钮ID:ID_MENUITEMOPEN
文本框ID:IDC_EDIT1
涉及代码如下:
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
case ID_MENUITEMOPEN:
{
FILE *p=fopen("c:\\1.txt","r"); //定义文件指针,读取指定目录文件
TCHAR ch[256];
TCHAR ed[256]={0};
while(!feof(p)) //检测指针是否到了文件尾
{
fgets(ch,sizeof(ch),p);
lstrcat(ed,ch);
int w=strlen(ed);
ed[w-1]='\0';
lstrcat(ed,"\r\n");
}
SetDlgItemText(hwnd,IDC_EDIT1,ed);
fclose(p);
}
break;
default:
break;
}
}