Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - palacio29

#21
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
struct s_texto
{
    char*txt;
    unsigned int longitud;

};
typedef struct s_texto t_texto;

t_texto* CARGARTEXTO();
char* CARGASTRING();
void escribirarch(const char* nomArch,t_texto*);

int main()
{
escribirarch("frases_con_longitud.csv",CARGARTEXTO());


    return 0;
}
t_texto* CARGARTEXTO()
{

    t_texto kiko;
    kiko.txt=CARGASTRING();
    printf("\n%s\n",kiko.txt);
    return &kiko;
}
char*CARGASTRING()
{

    char*texto=NULL;
    char letra;
    int i=0;
    texto=malloc(sizeof(char));
    letra=getche();
    while(letra!='\r')
    {
        *(texto+i)=letra;
        i++;
        texto=realloc(texto,((i+1)*sizeof(char)));
        letra=getche();
    }
    *(texto+i)='\0';
    return texto;
}

void escribirarch(const char* nomArch,t_texto* kiko)
{

    FILE*arch=NULL;
    printf("Llegue");
    printf("%s",kiko.txt);
    arch=fopen(nomArch,"w");
    fprintf(arch,"%d",5);
    printf("%d",longitud(kiko));
    fclose(arch);
}


Lo que tengo que hacer es cargar la estructura con un texto y la longitud de un texto y eso mandarlo a un archivo de texto
Dentro de la estructura hay un puntero.
Mi problema es en la linea 55. No se como hacer que imprima la frase.
Al intentar mandarlo por archivo, no manda nada...justamente porque hay intentar llamar a la frase para que se ponga ahi, me da error.
#22
Hay algo que no entiendo  en la parte de str=carga()...esa duda si que no la entiendo.
Supongamos que declaro mi puntero char =NULL como en la linea 7 es esta cajita.
Donde 150 es la direccion de memoria de mi puntero y NULL es su contenido.

l NULL l
  ------
   150

En la linea 8 yo pongo que str=CARGA() y CARGA me va a devolver un puntero al texto que cargue.
Entonces segun lo que creo mi caja queda asi?

l Direccion Memoria Del Texto (Primer posicion del texto) l
               --------------------------------
                   150


Entonces al hacer el %s detecta la primera posicion de la direccion de memoria del texto y me imprime el texto?.
#23
Tengo una consulta con el siguiente codigo:

Entiendo que cuando pongo char*Str=NULL lo que estoy declarando es un puntero cuyo contenido es NULL.
Lo que no entiendo es cuando str= CARGA().
No entiendo muy bien es  como funciona la siguiente linea "str=CARGA();".
Que es lo que hace esta funcion?.
Entiendo que hace que str= direccion de memoria del otro puntero.
Pero si estoy haciendo eso...no deberia poner *str=CARGA() para que el contenido de mi puntero str sea la direccion de esa memoria?.
Osea que es lo que se guarda en el contenido de STR? y porque con un simple %s sale la frase cuando deberia poner un asterisco?..

#include <stdio.h>
#include <stdlib.h>
char*CARGA();
void CARGA2(char**);
int main()
{
    char *str=NULL;
    str=CARGA();
    CARGA2(&str);
    printf("\n%s",str);
    return 0;
}
char*CARGA()
{
    char*texto=NULL;
    int i=0;
    char letra;
    texto=malloc(sizeof(char));
    letra=getche();
    while(letra!='\r')
    {

        *(texto+i)=letra;
        i++;
        texto=realloc(texto,(i+1)*sizeof(char));
        letra=getche();
    }
    *(texto+i)='\0';
    return texto;
}

#24
[LENGUAJE C] Tengo la siguiente sentencia y nose como interpretarla.

Char * Arreglo = NULL;

Que significa esto?.
Que el contenido de este arreglo es vacio  y como es la direccion de memoria de esa variable?.Porque hago un %p y salen todos ceros...
#26
Tengo el siguiente codigo

#include <stdio.h>
#include <stdlib.h>
typedef struct
{
    int n,o,p;
    char p1[26],p2[50];
    double a,b,c;

}
t_varios;
void CARGA(t_varios* a,t_varios* b);
int main()
{
    t_varios a,b;
    CARGA(&a,&b);

    return 0;
}

void CARGA(t_varios* a,t_varios* b)
{
    scanf("%d%d%d",a.n,a.p,a.o);
   
}


Basicamente lo que hago es declarar dos variables de mi estructura en el main, pasarlas como puntero a la funcion y desde esa funcion quiero cargar esas estructuras.
El problema es que no se como usar el scanf...si estoy recibiendo punteros, no seria necesario que ponga el & en el scanf pero igual me da error, pongo entonces el & y da error...ya por poner algo puse * tambien y tampoco...nose como cargarla.
Alguna ayudita?
#27
Cita de: engel lex en 20 Febrero 2017, 01:12 AM
es más facil que simplifiques el codigo y dejes


printf("%d",d);


y compares con una tabla ascii




Hola, gracias ya lo entendi!!...estaba confundido porque pense que los numeros empezaban en el 0 en la ascii,...pero empiezan en el 48. :silbar:..y como igualmente el resultado del ejercicio que estaba haciendo me estaba dando bien en ese caso  me estaba confundiendo.
#28
Y si cambio el '7' y pongo una 'a'...porque el resultado da 98?

#include <stdio.h>
#include <stdlib.h>

int main()
{

char d='a';


printf("%d%d",(((d-'0')*2)/10),(((d-'0')*2)%10));

    return 0;
}
#29
Tengo el siguiente codigo

#include <stdio.h>
#include <stdlib.h>

int main()
{

char d='7';


printf("%d%d",(((d-'0')*2)/10),(((d-'0')*2)%10));

    return 0;
}



Lo que no entiendo es porque es posible realizar operaciones matematicas si es que el 7 ingresado no es un numero, si no que es el caracter 7 y esta ingresado como char...Creo que me falta algo de concepto para entenderlo.
#30
Hola

Tengo este codigo que tengo que analizar:


#include <stdio.h>
#include <stdlib.h>

int main()
{
int a;
scanf("%d",&a);
if(a=0)
{
    printf("Verdadero");
}
else
{
    printf("Falso");
}


    return 0;
}


No entiendo que significa que el if tenga un solo igual en vez de 2.
Osea se que evidentemente no es una comparacion pero nose que hace para que siempre el programa me tome falso.