【发布时间】:2014-12-27 13:21:02
【问题描述】:
我正在帮助一个朋友完成一个关于读取文件和打印文件的简单 c++ 任务,代码如下:
#include<iostream>
#include<cstdlib>
#include<fstream>
using namespace std;
const int P=10;
struct persona
{
string nombre;
int puntos;
};
typedef persona vec[P];
int main (void)
{
ifstream f;
vec v;
int i;
f.open("estadisticas2.txt");
if(!f)
cout<<"Error abriendo fichero\n";
else
{
for(i=0;i<P;i++)
{
getline(f,v[i].nombre);
f >> v[i].puntos;
f.ignore();
}
f.close();
for(i=0;i<P;i++)
{
cout<<v[i].nombre<<"\n";
cout<<v[i].puntos<<"\n";
}
}
system("pause");
return 0;
}
我检查了是否是不阅读或 for 循环没有正确运行的问题。还初始化了向量v,但我只得到这个输出:
unknown
0
pene
20
ojete
40
tulia
240
0
1875655176
0
16
-1
1875658144
Insted of(真正的 .txt 值):
unknown
0
pene
20
ojete
40
tulia
240
Ano
2134
lolwut
123
unknown
0
unknown
0
unknown
0
unknown
0
感谢一切!
【问题讨论】:
-
由于 getline 刷新换行符,您是否尝试过不使用 f.ignore()?
-
是的,我做到了,结果更糟。