Buenas pues resulta que tengo que presentar un proyecto pero desde hace dias tengo problemas, el proyecto tiene ir en un archivo, el problema es que por mas que he tratado siempre se me encicla al momento de utilizar un ingreso de una oracion y no se que lo causa alguien podria ayudarme este es el codigo
#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <fstream>
#include <iomanip>
using std::string;
using namespace std;
int obtenerseleccion();
int abrirArchivo(char *);
int crearArchivo(char *);
int ingresoDato(char *);
char *inventario = "inventario.txt";
char *encabezado = "encabezado.txt";
char *detalle = "detalle.txt";
enum menu{ingresari=1,modificari,eliminari,ingresarp,mo dificarp,eliminarp,fin};// par funcion switch de inicio
int main ()
{
int seleccion;
while (seleccion != fin){
seleccion = obtenerseleccion();
switch (seleccion)
{
case ingresari:
crearArchivo(inventario);
ingresoDato(inventario);
// abrirArchivo(char *);
break;
case modificari:
crearArchivo(inventario);
break;
case eliminari:
crearArchivo(inventario);
break;
case ingresarp:
crearArchivo(inventario);
break;
case modificarp:
crearArchivo(inventario);
break;
case eliminarp:
crearArchivo(inventario);
break;
system ("pause");
} // fin switch menu
} //fin while
system ("pause");
return (0);
}// fin main
// seleccionar switch
int obtenerseleccion()
{
int solicitud;
// mostrar opciones
cout << "1 ingresar al inventario"<< endl
<< "2 Modificar el inventario"<< endl
<< "3 Eliminar del Inventario" << endl
<< "4 Ingresar pedido" << endl
<< "5 Modificar Pedido" << endl
<< "6 Eliminar Pedido" <<endl
<< "7 Salir";
// introducir opcion
cout<< "\n-";
cin >> solicitud;
while ( (solicitud >=ingresari) && (solicitud<=fin))
return solicitud;
}// fin funcion obtener seleccion
int crearArchivo( char *nombrearchivo)
{
ofstream archivo("inventario.txt",ios::app);
if(archivo.bad()) {
cout << "Error al tratar de crear archivo";
cin.get();
return 1;
}// fin if
char indicador='S';
while ((indicador=='S')||(indicador == 's' ))
{
int codigopi,numeroi;
char descripcioni[50];
double altoi, largoi, anchoi, costoi;
cout <<"ingrese el codigo de la herramienta\n";
cin>>codigopi;
cout <<"ingrese el numero de piezas\n";
cin>>numeroi;
cout <<"descripcion de la pieza\n";
cin.getline( descripcioni,50);
for(int i=0;strlen(descripcioni) < 50;i++)
{
strcat(descripcioni," ");
}
cout <<"definicion:"<< descripcioni<<endl;
cin.ignore();
cout<< "ingrese el alto\n";
cin>>altoi;
cout<<"ingrese el largo\n" ;
cin>>largoi;
cout<<"ingrese el ancho\n" ;
cin>>anchoi;
cout<<"ingrese el costo\n" ;
cin>>costoi;
archivo <<setw(8)<<codigopi<<setw(4)<<numeroi<<setw(50)<<d escripcioni<<endl<< setw(8)<<altoi<<setw(8)<<largoi<<setw(8)<< anchoi<<setw(12)<<costoi<<endl;
cout << "Si desea otro registro presione s\n"
<< "- ";
cin>> indicador;
}//fin for
archivo.close();
system("pause");
}//fin funcion creararchivo
int ingresoDato(char *nombrearchivo)
{
ifstream archivo("inventario.txt",ios::in);
if(archivo.bad()) {
cout << "Error al tratar de crear archivo";
cin.get();
return 1;
}// fin if
int codigopi,numeroi;
char descripcioni[50];
double altoi, largoi, anchoi, costoi;
while(!archivo.eof())
{
archivo >>setw(8)>>codigopi>>setw(4)>>numeroi>>setw(50)>>d escripcioni>>setw(8)>> altoi>>setw(8)>>largoi>> setw(8)>>anchoi>>setw(12)>>costoi;
cout <<setw(16)<<codigopi<<setw(4)<<numeroi<<setw(50)<< descripcioni<< setw(8)<<altoi<<setw(8)<<largoi<<setw(8)<< anchoi<<setw(12)<<costoi<<endl;
}
archivo.close();
}//fin funcion ingreso dato