我正在使用Visual Studio开发MFC接口,但输出不是应该的。我使用与代码块中使用的相同的代码,但这里的输出是不同的,我认为这是因为格式。进入' e的正确方法是什么?并且' d'在我的IDC_Values' ?我在网上搜索但是对MFC没什么了解
int e[100], d[100];
CString Text;
Text.Format((LPCWSTR)L"%d \t%d", e, d);
SetDlgItemText(IDC_Values, Text);
答案 0 :(得分:3)
CString是UNICODE版本上的CStringW和非UNICODE版本上的CStringA。所以你不应该将宽文字与非宽文字混合,例如你有:
Text.Format((LPCWSTR)L"%d \t%d", e, d);
^ ~~~~ this requires that CString is wide
这应该是(减去e和d是数组的事实!!):
Text.Format(_T("%d \t%d"), e, d);
现在,如果你想格式化一个字符串,并将其设置为widget,那么你必须迭代它(警告:我还没有编译这段代码):
CString Text;
CString tmp;
for (size_t i = 0; i < sizeof(e)/sizeof(e[0]); ++i) {
tmp.Format(_T("%d,"), e[i]);
Text += tmp;
}
// here the same for d
我并不是说它最有效率的方式。
答案 1 :(得分:0)
如果要打印数组的内容,则必须迭代数组并构建字符串 我想你想要一个包含e []和d []的行和列的列表? 我假设e。 d完全填满。 如果需要,您需要编码 像
b
这将生成包含e和d值的多行字符串。 如果这是你想要的。