elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Doble factor de autenticación o verificación en dos pasos


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Problema al leer caracteres [C]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al leer caracteres [C]  (Leído 457 veces)
S4ms3pi0l__

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Problema al leer caracteres [C]
« en: 16 Noviembre 2017, 18:45 »

El problema que tengo es, que sólo imprime el nombre del primer producto con el código registrado, a la hora de buscar los demás códigos, me envía el mensaje que "No existe" cuando no es así. Aquí les dejo el código:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdbool.h>
  4. #include <string.h>
  5. void menu();
  6. void menu(){
  7. printf("\t*****CONTROL DE INVENTARIO*****\n");
  8. printf("1.-Listado del inventario actual\n2.-Busqueda de productos\n3.-Ingresos totales\n4.-SALIR\n");
  9. printf("--------------------------------\n");
  10. }
  11. void salida();
  12. void salida(){
  13. printf("Saliendo del programa... Hasta pronto!\n");
  14. }
  15. struct Inventario{
  16. char codigo[10];
  17. char nombre[25];
  18. int cantidad;
  19. float pventa;
  20. };
  21. int Registrar(Inventario x[], int i);
  22. int Registrar(Inventario x[], int i){
  23. for(i=0;i<=2;i++){
  24. printf("\tRegistrar productos\n");
  25. printf("Producto #%d \n",i);
  26. printf("Ingrese el codigo del producto: ");
  27. gets(x[i].codigo);
  28. fflush(stdin);
  29. printf("\nIngrese el nombre del producto: ");
  30. gets(x[i].nombre);
  31. fflush(stdin);
  32. do{
  33. printf("\nIngrese la cantidad: ");
  34. scanf("%d",&x[i].cantidad);
  35. }while(x[i].cantidad<=0);
  36. fflush(stdin);
  37. do{
  38. printf("\nIngrese el precio de venta: ");
  39. scanf("%f",&x[i].pventa);
  40. }while(x[i].pventa<=0);
  41. fflush(stdin);
  42. system("cls");
  43. }
  44. }
  45. void Lista(int i, Inventario x[]);
  46. void Lista(int i, Inventario x[]){
  47. for(int j=0;j<=2;j++){
  48. printf("%s \t %s \t %d \t %0.2f \n",x[j].codigo, x[j].nombre, x[j].cantidad, x[j].pventa);
  49. }
  50. }
  51. /*Aqui esta el problema*/
  52. void Busqueda(char cod[10], Inventario x[], int i);
  53. void Busqueda(char cod[10], Inventario x[], int i){
  54. printf("Ingrese el codigo que desea buscar: ");
  55. scanf("%s",&cod);
  56. fflush(stdin);
  57. for(int j=0;j<=2;j++){
  58. if(strcmp(x[j].codigo,cod)==0){
  59. printf("\nProducto: %s \n",x[j].nombre);
  60.                        break;
  61. }else{
  62. printf("\nNo Existe\n");
  63.                        break;
  64. }
  65. }
  66. }
  67. /*                                        */
  68. float Venta(Inventario x[], int i);
  69. float Venta(Inventario x[], int i){
  70. float total;
  71. for(int j=0;j<=2;j++){
  72. total+=x[j].cantidad*x[j].pventa;
  73. }
  74. printf("Ingreso total: %0.2f \n",total);
  75. }
  76. int main(){
  77. struct Inventario prod[20];
  78. int i=0, op;
  79. char cod[10];
  80. bool salir = true;
  81. Registrar(prod,i);
  82. do{
  83. system("cls");
  84. menu();
  85. do{
  86. printf("\nSeleccione una opcion: ");
  87. scanf("%d",&op);
  88. }while(op<=0 || op>=5);
  89. system("cls");
  90. switch(op){
  91. case 1:{
  92. printf("\tINVENTARIO ACTUAL\n");
  93. Lista(i,prod);
  94. system("PAUSE");
  95. system("cls");
  96. break;
  97. }
  98. case 2:{
  99. printf("\tBUSQUEDA\n");
  100. Busqueda(cod, prod, i);
  101. system("PAUSE");
  102. system("cls");
  103. break;
  104. }
  105. case 3:{
  106. printf("\tVENTA TOTAL DEL INVENTARIO\n");
  107. Venta(prod, i);
  108. system("PAUSE");
  109. system("cls");
  110. break;
  111. }
  112. case 4:{
  113. salida();
  114. salir = false;
  115. break;
  116. }
  117. }
  118. }while(salir==true);
  119. return 0;
  120. }
  121.  


« Última modificación: 16 Noviembre 2017, 20:04 por S4ms3pi0l__ » En línea

MAFUS


Conectado Conectado

Mensajes: 1.114



Ver Perfil
Re: Problema al leer caracteres [C]
« Respuesta #1 en: 16 Noviembre 2017, 22:13 »

No hace falta que declares una función si la defines acto seguido. Es rellenar código sin importar. Es decir:
Código
  1. void f1();
  2. void f1(){
  3.   // ...
  4. }
  5.  
  6. void f2();
  7. void f2(){
  8.   // ...
  9. }
No tiene ningún sentido más que hacer más grande el código fuente.


En línea

while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Leer caracteres especiales
Programación C/C++
merlin 2 1,802 Último mensaje 18 Mayo 2007, 13:05
por merlin
Leer caracteres hexadecimales de un fichero
Programación C/C++
bebop 3 6,315 Último mensaje 17 Junio 2009, 09:20
por bebop
Problema al leer fichero con caracteres especiales
Programación C/C++
Yeiner 2 2,786 Último mensaje 10 Diciembre 2011, 05:32
por Lateseles
leer caracteres de un archivo
Programación C/C++
m@o_614 8 3,267 Último mensaje 10 Septiembre 2013, 04:25
por rir3760
Leer Cadena de Caracteres
ASM
muyayodeoz 1 907 Último mensaje 10 Enero 2014, 16:25
por muyayodeoz
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines