c++ 读取文件中的数据到对话框中.

orangecloud 2009-05-21 04:52:43
BOOL CTextDlg::OnInitDialog()
{
CDialog::OnInitDialog();



char str[100000];
CFile fp;
fp.Open("test.txt",CFile::modeRead);
char ch;
int i=0;
while(fp.Read(&ch,1))
{
str[i]=ch;//是不是这里错了呀?
i++;
}
str[i]='\0';//这个要加吗?

fp.Close();
HWND m_pWnd = this->m_hWnd; //dialog的句柄
HWND pEdit=::GetDlgItem(m_pWnd,IDC_TEXT); //dialog中edit的句柄
::SetWindowText(pEdit,str);

return TRUE;
}

我要实现从test.txt中读取数据,然后显示在对话框的编辑栏IDC_TEXT中。但是上面的做出来,对话框有,但编辑栏显示的是空白。为什么呢?大家帮帮忙吧~
...全文
114 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
orangecloud 2009-05-22
  • 打赏
  • 举报
回复
我做出来了,其实是editbox的属性设置问题。
不过大家的回答很有帮助阿~
周成风 2009-05-21
  • 打赏
  • 举报
回复
读txt文件感觉用 CStdioFile更方便点

MFC里对话框上的控件最好使用DDX和 DDV进行控制,很简单的。

设置个断点吧,看看m_Text变量是否有值了
orangecloud 2009-05-21
  • 打赏
  • 举报
回复

BOOL CTextDlg::OnInitDialog()
{
CDialog::OnInitDialog();

CString str;
CFile fp;
fp.Open("test.txt",CFile::modeRead);
char ch;
while(fp.Read(&ch,1))
{
str+=ch;//字符串可以读取的
}
fp.Close();

m_Text.Format("%s", str);
UpdateData(false);

return TRUE;
}

我按你说的改了额,编辑框关联了一个CString类数据变量m_Text,可是仍然没有数据显示,这到底是什么原因呢?
BruceLin2008 2009-05-21
  • 打赏
  • 举报
回复
str[i]=ch;//没错
str[i]='\0';//要加
test.txt要放在程序目录下,或者你指定到文件的实际目录。
我用程序试了,没错~!
winingsky 2009-05-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lsldd 的回复:]
在MFC的编辑框里显示字符最好用CString.
给编辑框关联一个CString数据变量m_strEdit;

C/C++ codem_strEdit.Format("%s", str);
UpdateData(false);
[/Quote]
en!
Sou2012 2009-05-21
  • 打赏
  • 举报
回复
CString
lsldd 2009-05-21
  • 打赏
  • 举报
回复
在MFC的编辑框里显示字符最好用CString.
给编辑框关联一个CString数据变量m_strEdit;
m_strEdit.Format("%s", str);
UpdateData(false);
liliangbao 2009-05-21
  • 打赏
  • 举报
回复
char  str[100000]; //修改为char str[100000] = {0};初始化是好习惯
while(fp.Read(&ch,1))
{
str[i]=ch;//没错
i++;
}
str[i]='\0';//是的,要加

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧