gpt4 book ai didi

c++ - 将 fstream 转换为 float

转载 作者:行者123 更新时间:2023-11-28 07:35:06 26 4
gpt4 key购买 nike

我正在尝试读取文件:

A = 10

B = 20.009

C is 20.09, 30.09

我转换遇到的 float/int 值的代码是:

int main ()
{
fstream file1, file2;
string line;
int N;
float W;
file1.open("input.txt");
file2.open("output.txt");
if (file1)
{
while (getline( file1, line ))
{
if(line[0] == 'A')
{
file1 >> W;
cout << "A ="<<W;
}
else if(line[0] == 'B')
{
file1 >> W;
cout << W;
}
}
file1.close();
}
else cout << "Can't open file\n";

return 0;
}

但我最终得到 W = 0 。我哪里错了?我必须使用 fscanf 吗??

最佳答案

在第一次调用 getline 之后,文件现在指向 A 行和 B 行之间的换行符。当您尝试提取 float 时,它不会看到任何看起来像浮点值的东西,它会遇到换行符并退出尝试。

您需要将读入的每一行解析到您的行变量中,或者使用运算符>>直接从文件中解析它,就像您尝试处理浮点值一样。

关于c++ - 将 fstream 转换为 float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16908113/

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