C++中getline函数的问题

C++中调试一个OnOK()函数,每次点确定按钮的时候都会出现基础类应用程序已停止工作,请问该怎么解决,以下是我的OnOK函数的代码!其中,CEditm_DirName;... C++中调试一个OnOK()函数,每次点确定按钮的时候都会出现基础类应用程序已停止工作,请问该怎么解决,以下是我的OnOK函数的代码!其中,CEdit m_DirName;CString m_str;
void CChooseDirDlg::OnOK()
{
// TODO: Add extra validation here
LPSTR path;
path=_T("D:\\vs2010project\\humantrack\\silhouettes\\fyc");
//path=_T("");
m_str =(char)m_DirName.GetLine(0,path);
CDialog::OnOK();
}
展开
 我来答
吾守护奇迹
2013-07-08 · TA获得超过202个赞
知道小有建树答主
回答量:237
采纳率:66%
帮助的人:156万
展开全部
你是要GetLine到path里面去吗?这样肯定不行的,你的程序中path指向的是个常量字符串,不能修改,而你试图修改其内容肯定报错
另外Getline的用法详见MSDN:http://msdn.microsoft.com/zh-SG/library/7775836w
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
糖二灰
2013-07-08 · TA获得超过3940个赞
知道小有建树答主
回答量:1052
采纳率:75%
帮助的人:1058万
展开全部
int GetLine( int nIndex, LPTSTR
lpszBuffer ) const;
int GetLine( int nIndex, LPTSTR
lpszBuffer, int nMaxLength ) const;
这是CEdit中的Getline函数定义,你上边的程序是要干什么?
你貌似连getline基本用法和参数的意义以及返回值意义都不知道,就在乱用了。
更多追问追答
追问
我用的不就是getline的第一种形式吗?
追答
.........................
GetLine函数究竟是干什么的,返回值是什么意思?里边参数又是什么意思,你明白了么?
你用的这叫形似而已,参数格式没错,但是意义全变了。

CEdit::GetLine
int GetLine(int nIndex,LPCTSTR lpszBuffer) const;
int GetLine(int nIndex,LPCTSTR lpszBuffer, int nMaxLength) const;
返回值实际拷贝的字节数。如果由nIndex指定的行号大于此编辑控件的行数,则返回值为0。
参数
nIndex 指定从多行编辑控件中检索的行的行号,行号由0指定。对单行编辑控件,此参数被忽略。
lpszBuffer指向获取此行备份的缓冲区。缓冲区的第一个字必须指定能被拷贝到缓冲区的最大字节数。 nMaxLength指定能被拷贝到缓冲区的最大字节数,GetLine在调用Windows之前将此值放置到lpszBuffer的第一个字中。说明调用此成员函数从编辑控件中获取文本的一行并将其放置到lpszBuffer缓冲区。被拷贝的行不包括空终止符。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
北哲利bk
2013-07-08 · 超过11用户采纳过TA的回答
知道答主
回答量:22
采纳率:0%
帮助的人:26.5万
展开全部
path是指向常量字符串的指针,当然不能写入数据了,改为TCHAR path[256];
追问
好像不能这样定义吧,如果这样定义的话,我要给path赋值,会报错。表达式必须是可修改的左值。
追答
你要给path赋值,请参考字符串的赋值,使用_tcscpy,geline就是要在path中填写数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式