2013-06-27 2 views
0

현재 응용 프로그램을 만들고있어 textBox에서 값을 가져 와서 더 이상 사용하기 위해 정수로 변환하려고합니다. 다음 코드를 가지고 있습니다 :Textbox의 텍스트를 문자열에서 ^로 변환합니다.

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()); 

maxTTL2는 여전히 '0'값을 가진 것으로 보입니다. stoi 인수를 사용할 때 stoi 인수가 범위를 벗어났습니다. 이 문제를 해결할 사람이 있습니까?

+0

방금 ​​'시스템 :: Int' –

답변

1

나는 그냥 할 수 있다고 생각 :

int i = Int32::Parse(maxTTL); 

나중에 당신이 i의 INT를 얻을 것이다. try 블록을 사용하여 코드를 탄환으로 처리 할 수도 있습니다.

+1

또는 사용'INT32 : TryParse' 같은 것으로 maxTTL의 유형을 변경할 수 없습니다 :

그래서 줄은 다음과 같은 모양입니다. – Medinoc

1

std::stoi()이 있으니 std::string 형식을 사용하면 int으로 변환 할 수 있습니다.

Herestd::stoi()에 필요한 설명서입니다. int maxTTL2 = std::stoi(bla);

+0

Barbaroise 그렇습니다. 실제로 std : stoi()가 필요하다고 생각합니다. 예외가 있습니다. '처리되지 않은'System.Runtime.InteropServices.SEHException '예외가 (projectname)에서 발생했습니다. 추가 정보 : 외부 구성 요소에서 예외가 발생했습니다. '해당 인수가 범위를 벗어남' – compu92

+0

[여기] (http://en.cppreference.com/w/cpp/string/basic_string/stol)을 읽습니다. ** 예외 ** 그 중 하나가 문제입니다. –

+0

이것은 또한 작동합니다! 문제는 textBox가 코드 어딘가에서 지워졌다는 것입니다 ... – compu92

관련 문제