尝试使用代码块从字符串中获取数字。不知道代码块是否有问题,因为我听说使用stoi功能时出现问题。
只是尝试执行以下操作:
字符串输入;
cin>>input;// user defined such as input="he gave 6 apples " ( taking only one number no matter how big )
int a;
a=stoi(input);// will be 6
答案 0 :(得分:1)
首先,您可能无法使用cin
获得整行。空间令人不安。您应该使用getline()
代替
其次,我更喜欢使用int atoi(const char *)
。
代码:
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
int myFunction(string s)
{
int i;
for(i = 0; i < s.length(); i++)
if(s[i] >= '0' && s[i] <= '9')
break;
return atoi(&(s[i]));
}
int main()
{
string s;
getline(cin, s);
int numFromLine = myFunction(s);
cout << numFromLine << endl;
return 0;
}