关于MFC VC++中有一个GetDlgItemText函数的简单问题
我想用这个函数读取Editcontrol控件里面的字符串并转化成数组,请问应该怎么做呢?假设控件ID是IDC_EDIT,而且空间里面输入的数据长度并不知道CStrings...
我想用这个函数读取Editcontrol控件里面的字符串并转化成数组,请问应该怎么做呢?
假设控件ID是IDC_EDIT,而且空间里面输入的数据长度并不知道
CString str;
GetDlgItemText(IDC_EDIT)->GetWindowText(str);和GetDlgItemText(IDC_EDIT,str)这两个
写法有什么区别呢?如果输入的是“1,23,4,5,6”,他们的结果分别是什么呢?又该用什么办法写到
数组里面? 展开
假设控件ID是IDC_EDIT,而且空间里面输入的数据长度并不知道
CString str;
GetDlgItemText(IDC_EDIT)->GetWindowText(str);和GetDlgItemText(IDC_EDIT,str)这两个
写法有什么区别呢?如果输入的是“1,23,4,5,6”,他们的结果分别是什么呢?又该用什么办法写到
数组里面? 展开
1个回答
展开全部
两个写法没有本质区别,GetDlgItemText最终调用的就是GetWindowText
当CString获取了一个字符串“1,23,4,5,6”之后,你需要通过自己的代码拆分字符串再转换为int才能保存到数组里面,没有特别省事儿的办法。
拆分示例:
CString str = “1,23,4,5,6”;
CString str1 = str.Left(str.Find(","));
int a[6];
a[0] = _ttoi(str1);
追问
就是说这两个函数得到的结果都是一串字符串是吧
哦,这样的话先去找出到底有多少个逗号,推算出多少个数,再用一个循环,读取一个,用strright删掉一度去的数字,再读取一个,同时外面创建一个数组接受,大小可以用逗号数量推算,这样你看合理吗?
追答
大概就是这个意思,不过你不需要去数逗号,通过while循环,每次判断一下find是否找到了逗号,最后找不到了,就是最后一个了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询