//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-loop,它檢查字符串的每個字符並將此字符串中的每個數字轉換爲int。但由於某種原因,atoi函數做了兩次,所以當我關閉它時,它會出於某種原因顯示它兩次......爲什麼?C++將字符串轉換爲int
例如: INPUT 3 3 -3 9 5
-8 -2 9 7 1
-7 8 4 4 -8
-9 -9 -1 -4 -8
OUTPUT 3030-309050 -80-20907010
-70804040-80
-90-90-10-40-80
'sNumber.push_back(sLine [l + 1]);'可以超出字符串結束。 – Vlad
@Vlad但我已經把那裏,因爲負數... – Danny
它執行整個循環兩次。 –