Claro, te entiendo, y encima seguro que tienes los datos separados por espacios. Pues de ser así no hay funciones de C++ que distinga a ese nivel de detalle.
Lo que si puedes hacer es tomar la solución que ofrezco
aquí, y analizar campo o columna por columna comprobando de que si se trata de un dato numérico al comienzo de la línea entonces que lo tome como código, incrementa índice de columna, si la segunda columna es de tipo texto (no es numérico) lo tome como nombre, incrementa índice, y si la siguiente columna es texto también lo concatene al nombre (e incrementa índice de columna) o de lo contrario si es numérico lo tome como cantidad (pasa a la siguiente fila y reinicia el índice de columna). Es facilísimo.
o
entradaArchivo >> codigo;
entradaArchivo >> nombre;
entradaArchivo >> cant;
// si (cant no es numerico) entonces concatena nombre+cant y hago de nuevo un..
// ...entradaArchivo >> cant; en caso contrario nada
Suerte