//sLine is the string
for(int l = 0; l < sLine.length(); l++)
{
string sNumber;
if(sLine[l] == '-')
{
sNumber.push_back(sLine[l]);
sNumber.push_back(sLine[l + 1]);
l++;
}
else if(sLine[l] != '\t')
{
sNumber.push_back(sLine[l]);
}
const char* testing = sNumber.c_str();
int num = atoi(testing);
cout << num;
}
이 for 루프는 문자열의 각 문자를 검사하고이 문자열의 모든 숫자를 int로 변환합니다. 하지만 어떤 이유에서, atoi 함수는 두번 그것을하고 있기 때문에 내가 그것을 말할 때, 그것은 어떤 이유로 두 번 표시됩니다 ... 왜죠?C++ 문자열을 int로 변환
예 : INPUT 3/3 -3 9-5
-2 -2 9
7 1 8 4 4 -7 -11 -13 -13
-1 -2 -3
OUTPUT 3030-309050 -80-20907010
-70804040-80
-90-90-10-40-80
'sNumber.push_back (sLine [l + 1]);'은 문자열 끝을 넘어 액세스 할 수 있습니다. – Vlad
@ Vlad하지만 음수로 인해 거기에 넣었습니다 ... – Danny
전체 루프를 두 번 실행하고 있습니다. –