//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
它执行整个循环两次。 –