Si usted tiene control sobre el formato, que va a ser (un poco) más fácil de leer si se eliminan las comas, y sólo tiene como entrada
e 225 370 35 75
Con este formato, el código de Poita_ para leer los datos funcionará [editar: desde que actualizó su código para leer explícitamente y omitir las comas]. De lo contrario, tendrá que saltar de forma explícita sobre las comas:
char ingore1, ignore2;
char ch;
int i[4];
file >> ch >> i[0] >> ignore1 >> i[1] >> i[2] >> ignore2 >> i[3];
[Editar: si usted es paranoico o realmente necesita para verificar su entrada, en este punto se puede comprobar que ignore1
y ignore2
contienen comas.]
En la mayoría de los casos, sin embargo, los datos están probablemente relacionados, por lo que desea leer una línea completa en una sola estructura (o clase):
struct data {
char ch;
int i[4];
std::istream &operator>>(std::istream &is, data &d) {
char ignore1, ignore2;
return is >> ch >> i[0] >> ignore1 >> i[1] >> i[2] >> ignore2 >> i[3];
}
};
una vez hecho esto, se puede leer una entero data
objeto a la vez:
std::ifstream infile("my data file.txt");
data d;
infile >> d;
O, si usted tiene un archivo completo lleno de estos, puede leerlos todos en un vector:
std::vector<data> d;
std::copy(std::istream_iterator<data>(infile),
std::istream_iterator<data>(),
std::back_inserter(d));
Cuéntanos lo que tiene. – bmargulies
Gracias chicos. C++ es muy frustrante para mí a veces, ya que aprendí Java primero. –
Aunque a veces puede ser frustrante, ayuda a tener acceso a algunas bibliotecas poderosas que no siempre están agrupadas directamente como lo están con Java. Imagine lo frustrante que sería Java si todo lo que tenía era el lenguaje central y no las bibliotecas. – joshperry