我正在使用 Visual Studio 开发 MFC 接口(interface),但输出不正常。我使用的代码与 codeblocks 中使用的 on 相同,但这里的输出不同,我认为这是格式的原因。在我的“IDC_Values”中输入“e”和“d”的正确方法是什么?我在网上搜索了很多关于 MFC 的内容
int e[100], d[100];
CString Text;
Text.Format((LPCWSTR)L"%d \t%d", e, d);
SetDlgItemText(IDC_Values, Text);
最佳答案
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);
现在如果你想格式化一个字符串,并将其设置为小部件,那么你必须迭代它(警告:我没有编译这段代码):
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
我并不是说这是最有效的方法。
关于c++ - Visual Studio MFC Cstring 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36844045/