gpt4 book ai didi

c++ - 解析文本文件直到找到 float ?

转载 作者:行者123 更新时间:2023-11-28 00:24:04 25 4
gpt4 key购买 nike

我正在尝试解析文本文件中的行。每行代表一个股票行情代码并具有相同的格式,具有随机数量的字符串(公司名称 + 符号)后跟统一数量的 float (每行数量相同)。

您如何检查最后读取的字符串是否为 float 以了解我何时到达字符串末尾并开始解析 float ?

示例文本行:

A.M. CASTLE & COMPANY CAS 15.71 0.55  3.63 31.57 17.97 8.99 7.79
AAR CORP AIR 17.79 0.19 1.08 30.62 18.45 10.51 38.26
ABBOTT LABORATORIES ABT 45.14 0.01 0.02 -3.24 50.00 40.25 20.33

示例代码:

void parse(string filename){
ifstream myfile;
string line;
string current_word;

myfile.open(filename);
if (myfile.is_open()){
while (getline(myfile, line))
{
stringstream current_line(line);
while (current_line >> current_word){
// How can I test when I have reached a float here?
}
}
}
}

最佳答案

您可以测试数字的流读取以查看它是否成功,如果成功则使用该值:

int main()
{
std::string line = "A.M. CASTLE & COMPANY CAS 15.71 0.55 3.63 31.57 17.97 8.99 7.79";

std::istringstream iss(line); // convert the line into a stream

std::string item;
while(iss >> item) // read the stream items (space separated) one by one
{
float f;
if(std::istringstream(item) >> f) // does this item read as a float?
{
// use f here if it does
std::cout << f << " ";
}
}
}

关于c++ - 解析文本文件直到找到 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25965834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com