Visual C++ vector<char> 将数值放入列表框中
Visual C++ vector<char> puts numeric values in listbox
我是一个 C/Java/VBA 的 C++ 新手...在按下表格。
当我尝试做看起来很自然的事情(下面的代码)时,列表框会填充以 10 为基数的 ASCII 值而不是字符。我一直在寻找 "force" listbox.Items.Add() 的方法来将其作为一个角色,但我没有任何运气。有人可以告诉我我做错了什么吗?
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
std::vector<char> CDROMDrives{ 'A', 'B', 'C'};
int i = 0;
for (auto &c : CDROMDrives) {
listBox1->Items->Add(c);
i++;
}
}
Here's what the list box looks like currently
65、66、67分别是'A'、'B'、'C'的ASCII数值。您需要确保您的程序将这些值解释为 char
s 而不是 int
s。在插入列表之前尝试将循环条件更改为 for (char &c : CDROMDrives)
或转换为 char
。
关于语言的标准说明:C++/CLI 旨在作为允许 C# 或其他 .Net 代码调用 C++ 代码的桥梁。它不打算作为主要的开发语言。如果你想学习 C++,我会使用 C++ 和 MFC 作为你的 GUI 工具包。如果您想学习托管代码,我会通过 WinForms 或 WPF 学习 C#。如果您有 Java/VBA 经验,我会选择 C#。
也就是说:
您没有说明您使用的是什么 GUI 工具包,或者 listBox1
的类型是什么,但它肯定是某种托管类型。因此,您需要制作一个 .Net System::String
以插入到列表框中。 C++ char
将被解释为 8 位整数,而 C++ std::string
将不会被解释为您想要的。
要转换为字符串,请将其转换为正确的 managed type, and then call the ToString
方法。
listBox1->Items->Add(((System::Char)c).ToString());
我是一个 C/Java/VBA 的 C++ 新手...在按下表格。
当我尝试做看起来很自然的事情(下面的代码)时,列表框会填充以 10 为基数的 ASCII 值而不是字符。我一直在寻找 "force" listbox.Items.Add() 的方法来将其作为一个角色,但我没有任何运气。有人可以告诉我我做错了什么吗?
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
std::vector<char> CDROMDrives{ 'A', 'B', 'C'};
int i = 0;
for (auto &c : CDROMDrives) {
listBox1->Items->Add(c);
i++;
}
}
Here's what the list box looks like currently
65、66、67分别是'A'、'B'、'C'的ASCII数值。您需要确保您的程序将这些值解释为 char
s 而不是 int
s。在插入列表之前尝试将循环条件更改为 for (char &c : CDROMDrives)
或转换为 char
。
关于语言的标准说明:C++/CLI 旨在作为允许 C# 或其他 .Net 代码调用 C++ 代码的桥梁。它不打算作为主要的开发语言。如果你想学习 C++,我会使用 C++ 和 MFC 作为你的 GUI 工具包。如果您想学习托管代码,我会通过 WinForms 或 WPF 学习 C#。如果您有 Java/VBA 经验,我会选择 C#。
也就是说:
您没有说明您使用的是什么 GUI 工具包,或者 listBox1
的类型是什么,但它肯定是某种托管类型。因此,您需要制作一个 .Net System::String
以插入到列表框中。 C++ char
将被解释为 8 位整数,而 C++ std::string
将不会被解释为您想要的。
要转换为字符串,请将其转换为正确的 managed type, and then call the ToString
方法。
listBox1->Items->Add(((System::Char)c).ToString());