Tengo un std :: istream que se refiere a datos de la matriz, algo como:C++ leer desde istream hasta nueva línea (pero no los espacios en blanco)
0.0 1.0 2.0
3.0 4.0 5.0
Ahora, con el fin de evaluar el número de columnas me gustaría tener algo de código como:
std::vector<double> vec;
double x;
while((...something...) && (istream >> x))
{
vec.push_back(x);
}
//Here vec should contain 0.0, 1.0 and 2.0
donde el algo ... ... parte se evalúa como falsa después de leer 2.0 y istream en el punto debe estar en 3.0 para que la próxima
istream >> x;
debe establecer x igual a 3.0.
¿Cómo lograrías este resultado? Supongo que la condición while
Muchas gracias de antemano por su ayuda!
Solo para aclarar, la razón por la que me gustaría seguir este enfoque (si es factible) es evitar la creación de objetos temporales (aparte del doble x). La matriz se crea luego mediante std :: intercambiando el vector de arriba con el almacenamiento interno de la matriz (se implementa a través de un std :: vector). – stepelu
bien, puedes hacerlo con un temporal en 10 líneas simples, o puedes hacerlo sin el temporal en 50 líneas duras. Use un temporal. –