no me muestra la parte de la factura y tampoco me genera el txt de la factura.

Iniciado por portademo, 1 Agosto 2017, 04:42 AM

0 Miembros y 1 Visitante están viendo este tema.

portademo


buenas vengo hoy con un codigo que he hecho por mi propia cuenta pero vengo a que me ayuden con una duda ya que cuando lo ejecuto no me muestra la parte de la factura y tampoco me genera el txt de la factura.

Código (cpp) [Seleccionar]
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <string>
#include <fstream>

using namespace std;
fstream fin1, fin2, fin3, fin4;
int main()
{
string art;
    int fac;
int pre;
int a,b,f,c,can,d,total;
float g,h;
cout<<"Bienvenido a la Tienda tesla\n";
cout<<endl;
cout<<"Desea comprar algun articulo\n";
cout<<"2 para si, 4 para no\n";

cin>>a;
if(a==4){
cout<<"Gracias por su visita vuelva pronto\n";
system("pause");
return 0;
}
{
cout<<"Desea Comprar?\n";

fin1.open("Articulos.txt",ios::in|ios::out);
getline(fin1,art);
fin1.close();

fin2.open("Precios.txt",ios::in|ios::out);
fin2>>pre;
fin2.close();
cout<<" el nombre del  articulo es  "<<art<< "\n";
cout<<"el precio del producto es "<< pre<<endl;

cout<<"2 para si, 4 para no\n";
cin>>b;
if(b==4){
cout<<"Gracias vuelva pronto\n";
           system("pause");
return 0;}
}
{
cout<<"Ingrese la cantidad\n";
cin>>c;
fin3.open("Cantidad.txt",ios::in|ios::out);
fin3>>can;
fin3.close();
cout<<"La cantidad disponible es de "<<can<<"?\n";
if(can<c){
cout<<"no hay tanta cantidad disponible\n";
cout<<"gracias por su visita\n";
system("pause");
return 0;
}
        can=can-c;
               fin3.clear();
fin3.open("Cantidad.txt",ios::trunc|ios::out);
fin3<<can;
fin3.close();
d=pre*c;
cout<<"El precio total es "<<d<<"\n";
cout<<"Desea continuar con la compra?\n";
cout<<"2 para si y 4 para no          \n";
cin>>f;
if(f==4){

cout<<"gracias por su visita vuelva pronto \n";
}

g=0.12;
       h=d*g;
       total=d+h;
       
       fin4.open("factura.txt",ios::in | ios::out );
       fin4>>fac;
       
        fin4<<"       SENIAT     "<<endl;
        fin4<<"     J-004596632     "<<endl;
        fin4<<"Tesla C.A    "<<endl;
        fin4<<"       No fiscal     "<<endl;
        fin4<<"fecha:25/07/17         Hora: 11:11    "<<endl;
        fin4<<"______________________________________________________"<<endl;
        fin4<<"|Cant|    Producto                          | Precio |    "<<endl;
        fin4<<"|____|______________________________________|________|"<<endl;
        fin4<<"| "<<can<<" |"<<art<<"| "<<pre<<" |"<<endl;
        fin4<<"|____|______________________________________|________|"<<endl;
        fin4<<"|    |                                      |        |"<<endl;
        fin4<<"|    |                                      |        |"<<endl;
        fin4<<"|    |                                      |        |"<<endl;
        fin4<<"|    |                                      |        |"<<endl;
        fin4<<"|    |                                      |        |"<<endl;
        fin4<<"|    |                                      |        |"<<endl;
        fin4<<"|    |                                      |        |"<<endl;
        fin4<<"|    |                                      |        |"<<endl;
        fin4<<"|____|______________________________________|________|"<<endl;
        fin4<<"|                                  Subtotal:|"<<d<<"   |"<<endl;
        fin4<<"|                                     I.V.A:|"<<g<<"   |"<<endl;
        fin4<<"|                                     Total:|"<<total<<"   |"<<endl;

      fin4.close();

}


system("pause");
return 0;
}



· Los códigos deben ir en etiquetas GeSHi
· Los títulos deben ser descriptivos
>aquí las reglas del foro
-Engel Lex

ivancea96

Por qué este:
Código (cpp) [Seleccionar]
fin4>>fac;

En cualquier caso, después de abrir cada archivo con open, deberías poner un:
Código (cpp) [Seleccionar]
if(ficN.fail()){
    // Error al abrir el archivo
}

Para asegurarte de que lo ha abierto correctamente. Mera comprobación.

Del mismo modo, si solo vas a leer de un archivo, no hace falta que pongas la flag ios::out. Trata de ser lo más extricto posible con las flags.

Otro detalle es que no necesitas según veo 4 fstreams. Dado que abres y cierras siempre, puedes usar la misma variable.

portademo

fin4>>fac;

es la variable que estoy usando para que me guarde en el txt llamado factura pero nada

ivancea96

Si pones >> estás leyendo de fic4 y guardando en fac. Suponiendo que fic4 no exista, esté vacío o tenga la factura como tú se la hayas escrito anteriormente, ¿qué es lo que pretendes que guarde en "fac"?