我有一个包含帐户随机数据的文件。 文件中的数据:
5
2871 2.19 8
1234 95.04 23
3341 0.00 10
3221 -1.08 21
7462 404.14 4
3425 4784.00 200
3701 99.50
JUNK永远不应该在这里3333
第一个数字5将始终是需要处理的帐户数量。 我希望能够读取该号码并将其设置为帐户数量。
所以我的问题是如何读取文件并逐行阅读,并将第一个数字设置为需要处理的帐户数量。
到目前为止代码:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
double NumberOfAccounts;
ifstream File("test.dat");
string line;
if(File)
{
while(getline(File,line))
{
NumberOfAccounts=line[0];
}
File.close();
}
cout<<NumberOfAccounts;
system("pause");
return 0;
}
现在它只打印出51。
任何提示/帮助都将不胜感激。
答案 0 :(得分:2)
两件事。一,你在一段时间内陷入困境(虽然还有一条线,读入并重新分配账户数),直到文件结束。其次,ASCII数字与实际数字不对应,因此字符“0”实际上是数字48.当程序读取最后一行时,你得到51,找到“3”字符,将其分配给一个整数(现在是51),然后输出它。
答案 1 :(得分:1)
NumberOfAccpounts是double,你要指定行的第一个字符... 我假设你在文件的第一行说明。
我的C ++是废话所以
伪代码
if(File)
{
if getLine(File, line)
{
NumberOfAccounts =atof(line);
}
File.close();
}
cout<<NumberOfAccounts;
system("pause");
return 0;
atof是将字符串转换为double的一种方法。您无需读取整个文件即可获得第一行。