• Portada
    • Recientes
    • Usuarios
    • Registrarse
    • Conectarse

    Ansi C: Lvalue required

    Programado Fijo Cerrado Movido
    Software
    5
    8
    1.8k
    Cargando más mensajes
    • Más antiguo a más nuevo
    • Más nuevo a más antiguo
    • Mayor número de Votos
    Responder
    • Responder como tema
    Accede para responder
    Este tema ha sido borrado. Solo los usuarios que tengan privilegios de administración de temas pueden verlo.
    • Bubu_54B
      Bubu_54
      Última edición por

      Pues eso, estoy intentando hacer una practica para septiembre y no consigo apañar este error.

      Os explico a groso modo:

      Se trata de gestionar un acuario mediante un array de registros, o sea un tipo struct nombre_del_array.

      Debo dar de alta, baja y modificar los datos, depurando entradas y esas cosas.

      Pues llego a un momento en que acepto una cadena de caracteres char nombre[30], lo acepto mediante scanf, y luego una vez comprobado que ese nombre es el que quiero lo tengo que asignar al objeto struct que me he declarado previamente.

      Hay es donde esta el problema, lo haga como lo haga siempre me pone Lvalue required.

      El objeto es algo parecido a esto:

      struct pez
      {
      char nomcom[30];
      char pais[25];
      .
      .
      .
      int clave;
      };

      y luego tengo una funcion y dentro es cuando hago lo de la asignacion:

      void modifica (struct pez *acu)
      {
      char nombre[30];
      char pais[25];
      .
      .
      int clave;

      /AHORA EMPIEZA HA HACER COSAS LA FUNCION
      .
      . es cuando pregunto y guardo los valores temporales
      .
      .
      .
      Y LLEGO AL MOMENTO DE ASIGNAR LOS VALORES/

      acu_.nomcom=nombre; //acu es el nombre de mi array
      acu_.pais=pais; //es en estas lineas donde me da el error Lvalue required.

      }

      El caso es que ese error solo me lo da con las variables de cadena de caracteres, con las de tipo entero y tipo caracter no me da problemas.

      Espero haberme explicado con claridad y gracias de antemano por la ayuda.

      P.D. Alguien tiene un manual en castellano del dev c++?__

      1 Respuesta Última respuesta Responder Citar 0
      • Q
        quadro
        Última edición por

        y esta bien definido el array acu?.Si quieres pasame el programa y le echo un vistazo haber si veo algo.Mi email es emiliocarlos@mixmail.com

        1 Respuesta Última respuesta Responder Citar 0
        • tonilopeT
          tonilope
          Última edición por

          No sé si… ¿Q tal usar strcpy(cadena_virgen, cadena_temporal) ? Esta función incluída en <string.h> copia el contenido de la cadena de la derecha en la de la izq (y te pone el \0 ) Yo lo hago así y me funciona.<br /><br />Salu2 y suerte!<br /><br />Ejemplo:<br /><br />for(i=0; i<X; i++)<br />{<br /><br />strcpy(acu<em>.nomcom, temporal.nomcom);<br />strcpy(acu<em>.pais, temporal.pais):<br /><br />.<br />.<br />.<br />etc…<br />}</em></em>

          1 Respuesta Última respuesta Responder Citar 0
          • P
            pakohuelva
            Última edición por

            Lo que indica el error es que a la funcion le falta un valor por la izquierda.

            ¿En que linea te da el error?.

            1 Respuesta Última respuesta Responder Citar 0
            • MonXPM
              MonXP Veteranos HL
              Última edición por

              Ese error lo da muchas veces porque, oh se te ha olvidado abrir o cerrar paréntesis, o has olvidado una coma entre los paréntesis.
              Por ejemplo, en el caso del strcpy: strcpy (cadena_origen cadena_destino);
              En vez de strcpy (cadena_origen, cadena_destino);

              Lo más seguro es que hayas hecho algo así mal, pero puede estar en cualquier parte.

              1 Respuesta Última respuesta Responder Citar 0
              • Bubu_54B
                Bubu_54
                Última edición por

                Gracias a todos por las respuestas.

                Una cosa, no puedo usar funciones especificas de cadenas, me las tendria que crear yo.

                Alguna sugerencia?

                Voy a colgar el programa por si lo quereis echar un vistazo, total se puede difundir por la red sin ningun compromiso, que los de la SGAE afortunadamente aun no se han metido en esto.
                attachment_p_170875_0_acuario2.zip

                1 Respuesta Última respuesta Responder Citar 0
                • tonilopeT
                  tonilope
                  Última edición por

                  Lo que hace la función strcpy() es recibir dos cadenas y mediante un bucle ir copiando los elementos de la de la derecha en la izq.

                  Yo haría esto:

                  void strcpy_casera(char copia[], char original[])
                  {

                  int i=0;

                  while(original_!='\0')
                  {

                  copia_=original_;
                  i++;

                  }

                  copia_='\0';

                  }

                  Salu2

                  PD: Se supone que la cadena copia es al menos igual de grande que original.

                  PD2: Cuanto tenga más ánimo le echo un vistazo más a fondo a tu programa (he tenido que hacer algunos ajustes para compilarlo proque mi compilador es una basura 😞 pero al ejecutarlo termina de repente… )____

                  1 Respuesta Última respuesta Responder Citar 0
                  • Bubu_54B
                    Bubu_54
                    Última edición por

                    Bueno, quiero pedir disculpas a la gente que me ha ayudado en esto por marcharme durante un tiempo sin decir adios.

                    Lo siento es que se me fue la pelota.

                    Por cierto ya casi casi que tengo la practica por los co***nes, al final puedo usar el strcpy y me han hecho la vida mas facil.

                    Gracias a todos por vuetra ayuda.

                    1 Respuesta Última respuesta Responder Citar 0
                    • 1 / 1
                    • First post
                      Last post

                    Foreros conectados [Conectados hoy]

                    1 usuarios activos (0 miembros e 1 invitados).
                    febesin, pAtO,

                    Estadísticas de Hardlimit

                    Los hardlimitianos han creado un total de 543.3k posts en 62.8k hilos.
                    Somos un total de 34.8k miembros registrados.
                    danywhite001 ha sido nuestro último fichaje.