MFC中如何将多个编辑框中内容存入二维数组中,并按照字典顺序排序,最后以massagebox形式弹出?

越详细越好
2024-11-24 06:18:43
推荐回答(3个)
回答1:

1 如果编辑框内容都是字符串的话,二维数组可以用vector来组织,这样可以利用vector的排序函数。
vector data;

2 从多个编辑框取文本有两种方法:
a 如果编辑框的资源ID号是连续的,可以用GetDlgItem(ID1-N)->GetWindowText来取,这样可以利用循环语句来写,代码比较简洁:比如
for(int ID=ID_First;ID<=ID_LAST;ID++)
{
GetDlgItem(ID)->GetWindowText(data[i]);
}
b 如果ID号不连续,那就只能一个一个的从编辑框获得内容了
UpdateData();
data[0]=m_cEditString1;
data[1]=m_cEditString2;
data[2]=m_cEditString3;
...
3 排序直接用vector的sort的函数即可
sort(data.begin(),data.end());
4 输出时把排序后的vector在输出即可
CString cs;
for(int i=0;i {
cs+=data[i]; cs+="\r\n";
}
MessageBox(cs);

回答2:

从一个txt文件中顺序读取数据 依次放入编辑框 这要看你txt内文件格式是怎么组织的了,给个简单的说吧,假如你txt里一行就放的是一个数据,CString

回答3:

1. 先updateData(true);前提是编辑框都对应了变量,把所有字符串都获取出来.
2. 建议先用一个链表把所有数据弄成字典序的(因为直接操作数组插入不方便)
3. 把数据逐项写入到二维数组中,并用一个CString量把所有的数据也同时加起来.
4. 把CString量的值直接MessageBox就行了.