我有一个包含姓名和号码的文本文件。名称或字符串包含15个字符,我需要将其放入字符串。我正在使用结构。
struct grybautojas{
string vardas;
int barav, raudon, lep, diena;
}gryb[100];
之后,有一些简单的计算是正确的,问题是,它只读取一次。拿出第一个“盒子”信息后,它就会停止。结果文件中的其他所有内容都为空白字符串或0为整数。
这是我的输入功能:
void ivedimas(){
char eil[16];
int b,r,l;
inFile >> n;
inFile.ignore();
for(int i=0;i<n;i++){
inFile.get(eil,15);
gryb[i].vardas=eil;
inFile >> gryb[i].diena;
gryb[i].barav=0, gryb[i].raudon=0, gryb[i].lep=0;
for(int m=0;m<gryb[i].diena;m++){
inFile >> b >> r >> l;
gryb[i].barav+=b, gryb[i].raudon+=r, gryb[i].lep+=l;
}
inFile.ignore();
}
inFile.close();
}
这是包含数据的文件:
4
Petras 3
5 13 8
4 0 5
16 1 0
Algis 1
9 6 13
Jurgis 4
4 14 2
4 4 15
16 15 251
1 2 3
Rita 2
6 65 4
4 4 13
有什么问题?
答案 0 :(得分:2)
inFile.get(eil,15);
Rita 2
Petras 3
00000000011111
12345678901234
我不算15,我算14.还有,你的一些线似乎在最后有一个空格。您应该重写输入逻辑以使更多更健壮。阅读行并解析它们。
答案 1 :(得分:0)
这一行:
inFile.get(eil,15);
正在读取名称后面的数字。
当您尝试读取数字时(示例中为3),您将获得下一个(5)。