【发布时间】:2014-05-27 23:50:38
【问题描述】:
我需要用 C++ 编写一个代码,从 逗号 分隔的文本文件中读取 浮点数 并复制到 浮点数的向量。文本文件包含数千个用逗号分隔的浮点整数(如 1、1、69.8、110、0、-1.8、-1.8、0、120、0、0、0、0、3.23、 )。我尝试使用 getline(),但我想它是为了将文本文件作为字符串读取,并保存在字符串向量中,而不是浮点数。任何人都可以帮我解决这个问题
以下代码没有按我预期的方式工作vector<float> ReplayBuffer;
ifstream in;
in.open("fileName.txt");
if(in.is_open())
{
in.setf(ios::fixed);
in.precision(3);
in.seekg(0,ios::end);
fileSizes = in.tellg();
in.seekg(0,ios::beg);
float number = 0;
for(int i = 0; i<fileSizes/sizeof(float);i++)
{
getline(in, ReplayBuffer[i],', ');
}
for(int i = 0;i<ReplayBuffer.size();i++)
{ cout<<ReplayBuffer[i]<<" , "<<endl; }
in.close();
}
}
【问题讨论】:
-
您可以直接从输入流中读取浮点数:`in >> ReplayBuffer"。您需要注意跳过逗号。
-
C 和 C++ 不是同一种语言,所以如果它与 C 没有任何关系,请不要将其标记为 C。
-
更正。文件中没有浮点数。您有带有小数部分的 ASCII 格式的十进制数。您需要将它们转换为浮点数。
标签: c++ vector text-files