Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: portademo en 1 Agosto 2017, 04:42 am



Título: no me muestra la parte de la factura y tampoco me genera el txt de la factura.
Publicado por: portademo en 1 Agosto 2017, 04:42 am

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
  1. #include <iostream>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. #include <string>
  5. #include <fstream>
  6.  
  7. using namespace std;
  8. fstream fin1, fin2, fin3, fin4;
  9. int main()
  10. {
  11. string art;
  12.     int fac;
  13. int pre;
  14. int a,b,f,c,can,d,total;
  15. float g,h;
  16. cout<<"Bienvenido a la Tienda tesla\n";
  17. cout<<endl;
  18. cout<<"Desea comprar algun articulo\n";
  19. cout<<"2 para si, 4 para no\n";
  20.  
  21. cin>>a;
  22. if(a==4){
  23. cout<<"Gracias por su visita vuelva pronto\n";
  24. system("pause");
  25. return 0;
  26. }
  27. {
  28. cout<<"Desea Comprar?\n";
  29.  
  30. fin1.open("Articulos.txt",ios::in|ios::out);
  31. getline(fin1,art);
  32. fin1.close();
  33.  
  34. fin2.open("Precios.txt",ios::in|ios::out);
  35. fin2>>pre;
  36. fin2.close();
  37. cout<<" el nombre del  articulo es  "<<art<< "\n";
  38. cout<<"el precio del producto es "<< pre<<endl;
  39.  
  40. cout<<"2 para si, 4 para no\n";
  41. cin>>b;
  42. if(b==4){
  43. cout<<"Gracias vuelva pronto\n";
  44.            system("pause");
  45. return 0;}
  46. }
  47. {
  48. cout<<"Ingrese la cantidad\n";
  49. cin>>c;
  50. fin3.open("Cantidad.txt",ios::in|ios::out);
  51. fin3>>can;
  52. fin3.close();
  53. cout<<"La cantidad disponible es de "<<can<<"?\n";
  54. if(can<c){
  55. cout<<"no hay tanta cantidad disponible\n";
  56. cout<<"gracias por su visita\n";
  57. system("pause");
  58. return 0;
  59. }
  60.         can=can-c;
  61.                fin3.clear();
  62. fin3.open("Cantidad.txt",ios::trunc|ios::out);
  63. fin3<<can;
  64. fin3.close();
  65. d=pre*c;
  66. cout<<"El precio total es "<<d<<"\n";
  67. cout<<"Desea continuar con la compra?\n";
  68. cout<<"2 para si y 4 para no          \n";
  69. cin>>f;
  70. if(f==4){
  71.  
  72. cout<<"gracias por su visita vuelva pronto \n";
  73. }
  74.  
  75. g=0.12;
  76.        h=d*g;
  77.        total=d+h;
  78.  
  79.        fin4.open("factura.txt",ios::in | ios::out );
  80.        fin4>>fac;
  81.  
  82.         fin4<<"       SENIAT     "<<endl;
  83.         fin4<<"     J-004596632     "<<endl;
  84.         fin4<<"Tesla C.A    "<<endl;
  85.         fin4<<"       No fiscal     "<<endl;
  86.         fin4<<"fecha:25/07/17         Hora: 11:11    "<<endl;
  87.         fin4<<"______________________________________________________"<<endl;
  88.         fin4<<"|Cant|    Producto                          | Precio |    "<<endl;
  89.         fin4<<"|____|______________________________________|________|"<<endl;
  90.         fin4<<"| "<<can<<" |"<<art<<"| "<<pre<<" |"<<endl;
  91.         fin4<<"|____|______________________________________|________|"<<endl;
  92.         fin4<<"|    |                                      |        |"<<endl;
  93.         fin4<<"|    |                                      |        |"<<endl;
  94.         fin4<<"|    |                                      |        |"<<endl;
  95.         fin4<<"|    |                                      |        |"<<endl;
  96.         fin4<<"|    |                                      |        |"<<endl;
  97.         fin4<<"|    |                                      |        |"<<endl;
  98.         fin4<<"|    |                                      |        |"<<endl;
  99.         fin4<<"|    |                                      |        |"<<endl;
  100.         fin4<<"|____|______________________________________|________|"<<endl;
  101.         fin4<<"|                                  Subtotal:|"<<d<<"   |"<<endl;
  102.         fin4<<"|                                     I.V.A:|"<<g<<"   |"<<endl;
  103.         fin4<<"|                                     Total:|"<<total<<"   |"<<endl;
  104.  
  105.       fin4.close();
  106.  
  107. }
  108.  
  109.  
  110. system("pause");
  111. return 0;
  112. }


· Los códigos deben ir en etiquetas GeSHi
· Los títulos deben ser descriptivos
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: no me muestra la parte de la factura y tampoco me genera el txt de la factura.
Publicado por: ivancea96 en 1 Agosto 2017, 11:43 am
Por qué este:
Código
  1. fin4>>fac;

En cualquier caso, después de abrir cada archivo con open, deberías poner un:
Código
  1. if(ficN.fail()){
  2.    // Error al abrir el archivo
  3. }
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.


Título: Re: no me muestra la parte de la factura y tampoco me genera el txt de la factura.
Publicado por: portademo en 1 Agosto 2017, 12:06 pm
fin4>>fac;

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


Título: Re: no me muestra la parte de la factura y tampoco me genera el txt de la factura.
Publicado por: ivancea96 en 1 Agosto 2017, 14:02 pm
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"?