Pues vi tu codigo y me llamo la atencion, la verdad no supe que es lo que querias hacer pero pude corregir muchas cosas que te complicaban te dejo el codigo:
Código C++:
Ver original#include<iostream>
#include<fstream>
#include<cstring>
using namespace std;
int main()
{
int i,p,m;
float modulo;
bool espacio,finlinea=false;
char c,linea[30],prod[5],mod[5];
ifstream MiArchivo;
//ABRIMOS EL FICHERO
MiArchivo.open("datos.txt",ifstream::in);
if (!MiArchivo.fail())
{
while (!MiArchivo.eof() )
{
//LEEMOS LA LINEA
MiArchivo.getline(linea,sizeof(linea));
i=17;
p=0;
m=0;
finlinea=false;
//ESTE IF ESTÁ PARA SALTAR LINEAS QUE NO QUEREMOS PARA NADA
{
while((i < 30) && (!finlinea))
{
c=linea[i];
if(c==32)//32 espacio en codigo ascii
espacio=true;
if(c==10)// salto de linea
finlinea=true;
else
{
//SI TODAVIA NO HEMOS ENCONTRADO EL ESPACIO,ES LA PRODUCCION
if(!espacio)
{
prod[p]=linea[i];
p++;
}
else
{
mod[m]=linea[i];
m++;
}
}
i++;
}
cout<<"Produccion: "<<prod<<endl;
cout<<"Módulo: "<<mod<<endl;
}
else
cout<<linea<<endl;
}
MiArchivo.close();
}
else
printf ("No se pudo abrir el archivo."); cin.get();
return 0;
}