如何在 C++/cli 中将文本框转换为整数数组
How to covert Textbox to integer array in c++/cli
我正在尝试将文本框转换为整数数组,假设文本框的每个字符都是数字。
//textbox is named input
int size = this->input->Text->Length;
int * num = new int[size];
int Counter = 0;
//for loop used since textbox inputs like a calculator
//Ex: the number: 234 is inputed: 2, then 23, then 234
for (int i = size; i > 0; i--)
{
num2[Counter] = System::Convert::ToInt32(input->Text[i-1]);
Counter += 1;
}
数字数组应该是:
num[0] = 4, num[1] = 3, num[2] = 2
经过研究,它似乎找到了整数 unicode 值。
Code input->Text[i-1]
returns wchar_t
类型的单个 Unicode 字符值。即隐式转换为Int32
,即符号代码。
您必须先将字符转换为字符串,然后再转换为数字。为此,您可以使用 Substring
方法或 ToString
方法。
您可以按照以下方式进行:
String^ text = this->input->Text;
int size = text->Length;
int * num = new int[size];
for (int i = size - 1; i >= 0; i--) {
num[i] = Convert::ToInt32(text->Substring(size - i - 1, 1));
}
但是,您不应混合托管和非托管代码。
有更好的办法。使用通用集合而不是数组。
String^ text = this->input->Text;
int size = text->Length;
List<int>^ nums = gcnew List<int>();
for (int i = size - 1; i >= 0; i--) {
nums->Add(Convert::ToInt32(text[i].ToString()));
}
别忘了
using namespace System::Collections::Generic;
列表可以像数组一样通过索引访问:
nums[i]
工作起来很方便。最重要的是,无需担心释放内存。
我正在尝试将文本框转换为整数数组,假设文本框的每个字符都是数字。
//textbox is named input
int size = this->input->Text->Length;
int * num = new int[size];
int Counter = 0;
//for loop used since textbox inputs like a calculator
//Ex: the number: 234 is inputed: 2, then 23, then 234
for (int i = size; i > 0; i--)
{
num2[Counter] = System::Convert::ToInt32(input->Text[i-1]);
Counter += 1;
}
数字数组应该是:
num[0] = 4, num[1] = 3, num[2] = 2
经过研究,它似乎找到了整数 unicode 值。
Code input->Text[i-1]
returns wchar_t
类型的单个 Unicode 字符值。即隐式转换为Int32
,即符号代码。
您必须先将字符转换为字符串,然后再转换为数字。为此,您可以使用 Substring
方法或 ToString
方法。
您可以按照以下方式进行:
String^ text = this->input->Text;
int size = text->Length;
int * num = new int[size];
for (int i = size - 1; i >= 0; i--) {
num[i] = Convert::ToInt32(text->Substring(size - i - 1, 1));
}
但是,您不应混合托管和非托管代码。
有更好的办法。使用通用集合而不是数组。
String^ text = this->input->Text;
int size = text->Length;
List<int>^ nums = gcnew List<int>();
for (int i = size - 1; i >= 0; i--) {
nums->Add(Convert::ToInt32(text[i].ToString()));
}
别忘了
using namespace System::Collections::Generic;
列表可以像数组一样通过索引访问:
nums[i]
工作起来很方便。最重要的是,无需担心释放内存。