Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: m4rkk0s en 10 Julio 2012, 19:32 pm



Título: Alguna ayuda :D seria agradable ... ( C)
Publicado por: m4rkk0s en 10 Julio 2012, 19:32 pm
Antes que nada gracias por pasarse por el tema

la cuestion es la sgte.. tengo
Código
  1.  
  2. typedef struct proyecto {
  3. char nombreproducto[255];
  4. char responsable[255];
  5. char respro [450];
  6. }producto_t;

y tengo otra que es igual pero que se llama peticion


mi duda es la sgte...
yo imprimo de esta forma
 
Código
  1. void imprimir_proyecto(proyecto_t proyecto){
  2. printf("\nel proyecto es: %s y su responsable del producto  : %s\n\n",proyecto.nombre,peticion.responsable);
  3.  

como hago para que me tome la parte de peticion.. =?


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: DickGumshoe en 10 Julio 2012, 19:57 pm
¡Hola!

¿Cómo que te tome la parte de petición? ¿Le has pasado por parámetros el struct petición?


Saludos.


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: m4rkk0s en 10 Julio 2012, 20:10 pm
buenas.. osea... como es... yo pongo la funcion


Código
  1. void imprimir_producto(producto_t producto){
  2.    printf("el producto es: %s \n responsable es %s\n ",producto.nombreproducto,producto.respro);
  3.  
  4. }

osa entiendo que ahi me deberia de imprimir lo que hice en la variable producto... mi dia es si yo quiero  imprimir valores que tiene la struc producto y valores uqe tiene la struc peticion

como deberia de hacer la sentencia dentro del void imprimir?


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: DickGumshoe en 10 Julio 2012, 20:12 pm
Que yo vea tienes el código bien... En todo caso pasarle por parámetros el struct producto si no es una variable global. Es que sin el código completo es muy complicado ver en qué fallas y tu duda...

EDITO: Ya he entendido tu duda.

Pásale por parámetros el otro struct, tal y como has hecho con el producto, y en el printf lo usas igual.

Saludos.


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: m4rkk0s en 10 Julio 2012, 20:28 pm
perdon la demora de la respuesta... estaba probando unas cosas... ahora prubeo eso gracias!! como siempre gracias por la molestia que te tomas para ayudarme un abrazo


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: do-while en 10 Julio 2012, 20:29 pm
¡Buenas!

Para pasar mas de un parametro a una funcion tienes que indicar el tipo y el identificador de cada uno de ellos, separandolos por comas, entre los parentesis que delimitan la lista de parametros:

Código:
tipo_de_retorno identificador_de_funcion (tipo1 identificador1, tipo2 identificador2, ... , tipoN identificadorN)
{
    El codigo de tu funcion
}

En los prototipos de funcion el compilador ignora los identificadores, solo tiene en cuenta el numero y tipo de parametros que recibe la funcion, pero por cuestiones de claridad de codigo suele ser mas que recomendable que incluyas los identificadores tambien en el prototipo, ya que asi el codigo se entiende mejor.

¡Saludos!

   
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: m4rkk0s en 11 Julio 2012, 15:12 pm
buenas!! perdon la demora en la respuesta... y sobretodo gracias por responder :D

Código
  1. void imprimir_proyecto (proyecto_t proyecto, producto_t producto){
  2.  
  3. printf("CC263_NEW_%s_proyecto : %s = %s %s\n",proyecto.nombre,proyecto.responsable,producto.respro);
  4.                    }

eso tendria q hacer???
 y para imprimir en el main

seria


Código
  1.  
  2. int main (){
  3. proyecto_t s = crear_proyecto();
  4. producto_t  d= crear_producto();
  5. imprimir_proyecto (s,d);}
  6.  

proyecto y producto son struc como  la que hice al principio
eje
Código
  1. producto_t crear_producto(){
  2.  
  3.    producto_t producto;
  4. //aca iria lo que hace osea pide datos y los deja en una variable con gets
  5.  
  6.  


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: DickGumshoe en 11 Julio 2012, 15:15 pm
Sí, eso es lo que tienes que hacer para imprimirlo en main().

Saludos!


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: m4rkk0s en 11 Julio 2012, 18:33 pm
de nuevo el bruto preguntando :D

una consulta... yo kreo un archivo de esta forma

Código
  1. FILE* miarchivo;
  2. char* nombrearchivo;
  3. char nombrefuncion[55];
  4. int indice=3;
  5. int indice1=3;
  6.    strcpy ( nombrefuncion, proyecto.nombre );
  7.    strcat ( nombrefuncion, ".txt");
  8.    nombrearchivo = nombrefuncion;
  9.    miarchivo= fopen(nombrearchivo,"w+a");
  10.  
  11. fprintf (miarchivo,"hola 1\n");
  12.  
esto esta dentro de un struc..
una vez que lo krea yo lo quiero llamar desde un void imprimir...

pero no se como llamarlo para que agregue el resultado de los demas struc.. porque si bien ya logre uqe imprima otras cosas.. no imprimer lo q yo quiero ..porque lo escribo y no sale.. me imprime vacio osea nada.. como que no toma como lo llamo...

yo utilizo

FILE* miarchivo;
fopen (nombrearchivo, "w+a");


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: DickGumshoe en 11 Julio 2012, 19:47 pm
Es por esto:

Código
  1. nombrearchivo = nombrefuncion;

Tienes que copiar nombrefuncion en nombrearchivo con strcpy(). No se puede hacer mediante un '='.

Saludos.


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: durasno en 12 Julio 2012, 01:12 am
Citar
Tienes que copiar nombrefuncion en nombrearchivo con strcpy(). No se puede hacer mediante un '='.
en este caso no podes utilizar strcpy sino se reserva memoria dinamica, ya que nombrearchivo es un puntero. La asignacion es correcta


m4rkk0s no entendi que es lo que queres hacer, si podes dar un mejor ejemplo. Otra cosa esta combinacion "w+a" no es valida ¿¿te compila??


Saludos


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: DickGumshoe en 12 Julio 2012, 01:18 am
en este caso no podes utilizar strcpy sino se reserva memoria dinamica, ya que nombrearchivo es un puntero. La asignacion es correcta


m4rkk0s no entendi que es lo que queres hacer, si podes dar un mejor ejemplo. Otra cosa esta combinacion "w+a" no es valida ¿¿te compila??


Saludos

Le dije eso porque las dudas que está preguntando son para un trabajo, y por eso en los temas que crea no pone el código entero, y como hace unos días ya le dije que le tenía que asignar memoria dinámica, en el mensaje anterior supuse que ya tenía una función en otra parte del código que lo hiciera.

Saludos!


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: durasno en 12 Julio 2012, 01:22 am
ah ok, no tenia idea. Respondo a lo que veo :)... asi q ya sabes m4rkk0s  reserva memoria


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: m4rkk0s en 12 Julio 2012, 19:41 pm
Muchas gracias y perdon la demora.. me cope con el programa y va saliendo joya!! :D gracias !!!

ahora tengo otra pregunta.. va me voy a poner a leer pero para saber mas o menos si yo quiero leer un archivo... que ese archivo tiene una estructura... que necesito mantener.. con que funcion me recomiendan para leerlo? fscanf ? o alguna de esa no? ahora me voy aponer a buscar cual se adapta mejor
abrazo


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: DickGumshoe en 12 Julio 2012, 20:16 pm
Muchas gracias y perdon la demora.. me cope con el programa y va saliendo joya!! :D gracias !!!

ahora tengo otra pregunta.. va me voy a poner a leer pero para saber mas o menos si yo quiero leer un archivo... que ese archivo tiene una estructura... que necesito mantener.. con que funcion me recomiendan para leerlo? fscanf ? o alguna de esa no? ahora me voy aponer a buscar cual se adapta mejor
abrazo

Sí, con fscanf te irá bien.

Saludos.


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: m4rkk0s en 12 Julio 2012, 23:05 pm
estuve buscando y buscando.. pero no me queda muy claro como usar fread// fwrite... si alguien tiene algunos ejemplillos para q estudie muy agradecido!!!!


abrazo!! saludos!!! y demas!!

ahi vi un post con muchos libros!! me lso voy a descargar!!!! jeje asi no los jodo tanto... abrazo


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: DickGumshoe en 12 Julio 2012, 23:12 pm
Aquí te dejo ejemplos y explicación de cómo usarlos y para qué sirven: fread() (http://www.cplusplus.com/reference/clibrary/cstdio/fread/), fwrite() (http://www.cplusplus.com/reference/clibrary/cstdio/fwrite/)

Saludos!


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: m4rkk0s en 13 Julio 2012, 21:56 pm
buenas!!!! muchas gracias! detective!!! jaja ahora lo veo pero gracias por las molestias de buscarme ayuda... te lo agradezco

EI: juntando mensajes.

buenas!! como estan?? necesito que me den una idea...


quiero cargar  por ejemplo

TRD- bla b la bla bla bla bla bla bla - bla bla
STR - bla b la bla bla bla bla bla bla - bla bla
SDD - bla b la bla bla bla bla bla bla - bla bla
WEE- bla b la bla bla bla bla bla bla - bla bla
TRT - bla b la bla bla bla bla bla bla - bla bla

y que lo guarde... luego quiero acceder a ellos preguntando por pantalla
desea cargar ? y q si pone por tecla TRD se realice una busqueda.. dentro de donde cargo todo para dar con ese nombre y que imprima eso... bueno lo de imprimr y eso no.. pero  como seria ??? que funciones.. o que deberia de usar como para ir dandome una idea... para poder hacerlo


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: DickGumshoe en 13 Julio 2012, 21:59 pm
¿Ten refieres a que tienes un array de struct, preguntas por un nombre, haces la búsqueda y si se encuentra dicho nombre imprimes el resto de datos del struct?

Saludos!


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: m4rkk0s en 16 Julio 2012, 14:16 pm
buenas... mas o menos logre lo anterior.. ahora me surgio una duda....

yo tengo un archivo.bin.... y dentro del archivo tengo datos... yo quiero que los datos del archivo .bin se carguen a medida que piba el archivo donde voy a usar fread para leer el .bin...

mi idea es que se cargue el archivo con los datos del .bin....

eso se puede hacer no? y si se puede hacer con que funciones? yo leo con fread.. pero el fwrite no quiere hacer lo que yo le digo!!! -.- jaja


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: DickGumshoe en 16 Julio 2012, 14:25 pm
Citar
yo tengo un archivo.bin.... y dentro del archivo tengo datos... yo quiero que los datos del archivo .bin se carguen a medida que piba el archivo donde voy a usar fread para leer el .bin...

mi idea es que se cargue el archivo con los datos del .bin....

Perdón, pero no entiendo lo que quieres hacer...

Citar
yo leo con fread.. pero el fwrite no quiere hacer lo que yo le digo!!! -.- jaja

Si nos pasas el código podemos ver por qué no funciona el fwrite.

Saludos!


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: m4rkk0s en 16 Julio 2012, 14:30 pm
mmmm yo tengo un programa(X) q pide por pantalla que el usuario ingrese datos... entre ellos estan producto, persona, responsable... etc...

eso ya sale bien.. hace todo joya.. ahora mi duda es la siguiente...  yo tengo un archivo .bin en el cual se han cargado los datos de producto, persona, responsable... etc... ahora lo qeu quiero ver es si esos datos que estan en el .bin se cargan automaticamente en el programa(X)... osea producto con producto. persona con persona y responsable con responsable.... eso se puede hacer?

mi duda es con que funcion o como se deberia de hacer para uqe salga... espero poder explicarme.. abrazo


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: DickGumshoe en 16 Julio 2012, 14:33 pm
¿Lo que quieres es meter todas las personas juntas, todos los productos juntos y todos los responsables juntos en el .bin?

Saludos!


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: m4rkk0s en 16 Julio 2012, 14:38 pm
:D:D:D haaaa me es tan dificil explicar q aveces ni yo me entiendo!!! jaja al contrario... el programa(X) da como resultado un .txt en donde se visualizan los datos cargados por el usuario, yo quiero que el programa (X) no me pida los datos sino que los saque del archivo.bin y asi complete los datos sin que el usuario tenga que cargarlos por pantalla, asi que simplemente abriendo el programa(x) y poniedolo a funcionar haga el trabajo de tomar los datos del archivo.bin y que el usuario no tenga que hacer nada.. :D


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: DickGumshoe en 16 Julio 2012, 14:42 pm
¿Entonces tienes un .txt o un .bin?

A ver, lo que tienes ahora es que el usuario introduzca los datos y se almacenen en un .txt, pero lo que quieres es que no te pida nunca los datos, sino que estén ya en un .bin, ¿no?

Saludos!


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: m4rkk0s en 16 Julio 2012, 14:46 pm
claro... los datos ya estan guardados en un .bin yo quiero que el programa lea los datos, y los ubique dentro del programa(X), el resultado va a ser un .txt pero eso por ahora no me importa... yo ahora lo que necesito es que el programa me lea el .bin para poder obtener los datos y de ahi qeu el programa corra sin tener que poner los datos por pantalla.... :DD:D:D:D:D:D


Título: Re: Alguna ayuda :D seria agradable ... ( C)
Publicado por: DickGumshoe en 16 Julio 2012, 15:21 pm
En teoría deberías poder leer el archivo .bin con fscanf e introducir datos con fprintf...

Saludos!