String 文本框中的文本从字符串^1转换为int

String 文本框中的文本从字符串^1转换为int,string,visual-studio-2012,c++-cli,converter,String,Visual Studio 2012,C++ Cli,Converter,目前,我正在制作一个应用程序,尝试从文本框中获取一个值,然后将其转换为整数以供进一步使用。我有以下代码: System::String^ maxTTL = textBoxMaxTTL->Text; std::string bla = marshal_as<std::string>(maxTTL); //System string^ to std::string int maxTTL2 = std::atoi(bla.c_str()); System::String^maxT

目前,我正在制作一个应用程序,尝试从文本框中获取一个值,然后将其转换为整数以供进一步使用。我有以下代码:

System::String^ maxTTL = textBoxMaxTTL->Text; 
std::string bla = marshal_as<std::string>(maxTTL); //System string^ to std::string
int maxTTL2 = std::atoi(bla.c_str());
System::String^maxTTL=textBoxMaxTTL->Text;
std::string bla=marshal_as(maxTTL)//系统字符串^to std::string
int maxTTL2=std::atoi(bla.c_str());

maxTTL2似乎仍然获得值“0”。当我使用
stoi
参数时,它抛出以下异常:stoi参数超出范围。有人有办法解决这个问题吗?

我想你可以这样做:

int i = Int32::Parse(maxTTL);

之后,您将在
i
中获得int。您还可以使用try块来防弹代码。

我认为您需要
std::stoi()
,因为您需要将
std::string
类型转换为
int

std::stoi()
所需的文档


因此,您的行应该如下所示:
intmaxttl2=std::stoi(bla)

你能不能把maxTTL的类型改成类似于
System::Int
Barbaroise的类型?是的,我认为std:stoi()确实是必要的,但奇怪的是它给出了异常:
在(projectname)中发生了一个未处理的异常,类型为“System.Runtime.InteropServices.SEHException”。附加信息:外部组件引发了异常。
在stoi中:
stoi参数超出范围
在异常下读取其中一个是您的问题。这也有效!问题是文本框在代码的某个地方被清除了,。。。