无法从字符串中获取数字输入

时间:2017-09-10 11:57:40

标签: c++ string input codeblocks

尝试使用代码块从字符串中获取数字。不知道代码块是否有问题,因为我听说使用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

1 个答案:

答案 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;
}