Visual Studio MFC Cstring格式

时间:2016-04-25 14:51:39

标签: c++ mfc

我正在使用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);

2 个答案:

答案 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值的多行字符串。 如果这是你想要的。

相关问题