Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/07/2011, 15:49
v1siond
 
Fecha de Ingreso: julio-2011
Mensajes: 17
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: problema con cadenas de caracteres

Olviden el problema, lo resolví de otra manera y funcionó, gracias por las lecturas de todas formas.

PD: sam, mi idea era asignarle el valor de una cadena a otra, osea si nombre era alexander, asignar es enombre a otra cadena y uego montarla en la factura, pero ya lo resolví. Hice la ultima parte así y funcionó.

Código C:
Ver original
  1. void factura()
  2. {
  3.      int edad=0, edaddos=0;
  4.      char nombre[20],nombredos[20], apellido[20], apellidodos[20], cedula[20], cedulados[20];
  5.      char cedulatres[20], direccion[50], direcciondos[50];
  6.      int u=0, n=0;
  7.      char nombrep[20], nombrepdos[20], codigo[20], codigodos[20], tipo[20], tipodos[20];
  8.      float costo=0, costodos=0;
  9.      FILE *producto;
  10.      FILE *persona;
  11.      FILE *factura;
  12.           printf("\nIntroduzca un numero de cedula, para verificar si ya esta registrado\n\n");
  13.           scanf("%s", cedulatres);
  14.           if ((persona=fopen("persona.txt", "a+")) == NULL)
  15.            {
  16.                                         printf ("\nError al abrir el archivo\n");
  17.                                        
  18.            }
  19.            else
  20.            {
  21.                while(!feof(persona))
  22.                {
  23.                                     fscanf(persona,"%s %s %s %d %s",cedula ,nombre, apellido, &edad, direccion);
  24.                                     u = strcmp(cedula,cedulatres);
  25.                                     if (u==0)
  26.                                     {    
  27.                                          if ((factura=fopen("factura.txt", "w")) == NULL)
  28.                                          {
  29.                                                                          printf ("\nError al abrir el archivo\n");
  30.                                          }
  31.                                           else
  32.                                           {
  33.                                                   fprintf(factura, "%s %s %s %d %s",cedula ,nombre, apellido, edad, direccion);
  34.                                                   break;
  35.                                                   fclose(factura);
  36.                                                   fclose(persona);
  37.                                           }
  38.                                           break;
  39.                                     }
  40.                }
  41.            }
  42.                if (u!=0)
  43.                {
  44.                         printf ("\nLa persona no se encuentra registrada, por favor registrela presionando la opcion -1- en el menu\n");
  45.                }
  46.           printf("\nIntroduzca el codigo del producto\n\n");
  47.           scanf("%s", codigodos);  
  48.             if ((producto=fopen("producto.txt", "r+")) == NULL)
  49.            {
  50.                                         printf ("\nError al abrir el archivo\n");
  51.                                        
  52.            }
  53.            else
  54.            {
  55.                while(!feof(producto))
  56.                {
  57.                                     fscanf(producto,"%s %s %s %f", codigo, nombrep, tipo, &costo);
  58.                                     n = strcmp(codigo,codigodos);
  59.                                     if (n==0)
  60.                                     {                    
  61.                                          if ((factura=fopen("factura.txt", "a+")) == NULL)
  62.                                          {
  63.                                                                          printf ("\nError al abrir el archivo\n");
  64.                                          }
  65.                                           else
  66.                                           {
  67.                                                   fprintf(factura, "%s %s %s %f", codigo, nombrep, tipo, costo);
  68.                                                   break;
  69.                                                   fclose(factura);
  70.                                                   fclose(producto);
  71.                                           }
  72.                                           break;
  73.                                      }
  74.                }
  75.             }
  76.              if (n!=0)
  77.                {
  78.                         printf ("\nEl producto no se encuentra en la base de datos, favor registrarlo en la opcion -2-\n");
  79.                }
  80.             if ((factura=fopen("factura.txt", "r+")) == NULL)
  81.                                             {
  82.                                                                                 printf ("\nError al abrir el archivo\n");
  83.                                             }
  84.                                             else
  85.                                             {
  86.                                                 printf ("\n                              .::Resultado::.\n\n");
  87.                                                 while (!feof(factura))
  88.                                                 {
  89.                                                       fscanf(factura,"%s %s %s %f", codigo, nombrep, tipo, &costo);
  90.                                                       printf  ("Producto comprado: %s - %s - %s - %f\n", codigo, nombrep, tipo, costo);
  91.                                                       fscanf (factura, "%s %s %s %d %s",cedula ,nombre, apellido, &edad, direccion);
  92.                                                       printf  ("Comprador:  %s - %s - %s - %d - %s", cedula ,nombre, apellido, edad, direccion);
  93.                                                       break;
  94.                                                 }
  95.                                                 fclose(factura);
  96.                                             }
  97.                             printf ("\n\n");
  98. }

ahora solo falta eliminar todas las variables auxiliares que sobran...