我有一个文本文件,看起来像这样:
user_name1 1.575
user_name2 3.636
user_name3 2.647
user_name4 5.532
user_name5 4.253
我正在尝试的是从.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;
}
std::regex
。 - jaredreadystd::stod
是C++标准库中的一个函数,用于将字符串转换为双精度浮点数类型。它接受一个字符串参数并返回相应的双精度浮点数值。 - Some programmer dude