如何从文本c ++中获得双打

spa*_*rou 4 c++ input

我有一个文本文档,看起来像这样:

user_name1 1.575
user_name2 3.636
user_name3 2.647
user_name4 5.532
user_name5 4.253
Run Code Online (Sandbox Code Playgroud)

我想要做的是,将.txt文件中的这些数字输入控制台并将它们保存为变量.我知道如何在控制台中读取.txt文件,我在这里找到了一些答案,如何将每一行分别作为字符串,但我不能得到这些双打.是否有某种功能或任何通过字符串并找到数字?

我试过这个:

1)获取每一行的字符串2)循环通过它们并检查ASCII代码,如果是一个数字,我保存了下一个3或4个字符串

但它的效果不佳.感谢您的帮助.

编辑:

string line;

ifstream banka ("banka.txt");

double numbers[5];
if(banka.is_open()) {
    for(int i=0; i<5; i++) {
        getline(cin,line);
        size_t space=line.find(' ');
        string numStr=line.substr(space+1);
        double num = stod(numStr);
        numbers[i]=num;

    }
    banka.close();
}
else {
    cout<<"Unable to open file."<<endl;
}
Run Code Online (Sandbox Code Playgroud)

P0W*_*P0W 6

为什么不简单呢?

std::ifstream fin("input.txt");
std::string str;
double num;

while (fin >> str >> num)
{

    std::cout << str << " :" << num <<std::endl;
}
Run Code Online (Sandbox Code Playgroud)