Foros del Web » Programación para mayores de 30 ;) » C/C++ »

convertir tipos de datos C y gtk

Estas en el tema de convertir tipos de datos C y gtk en el foro de C/C++ en Foros del Web. hola ando haciendo mis priimeras pruebas con gtk tengo un problema que me imagino debe ser muy simple para los que ya tienen experiencia en ...
  #1 (permalink)  
Antiguo 26/07/2009, 13:20
 
Fecha de Ingreso: julio-2009
Mensajes: 3
Antigüedad: 14 años, 9 meses
Puntos: 0
convertir tipos de datos C y gtk

hola

ando haciendo mis priimeras pruebas con gtk
tengo un problema que me imagino debe ser muy simple para los que ya tienen experiencia en esto

hice un programa que te pide que escribas algo y te lo muestre y te lo ponga en el boton pero al revez para eso tengo que convertir

este tipo de string char *texto en el string clasico de c (char textoa[120];)
pero no lo puedo hacer con una operacion comun como seria esta
textoa = texto;
ya que al compilar me tira error: tipos incompatibles en la asignación

desde ya agradezco su ayuda
  #2 (permalink)  
Antiguo 27/07/2009, 13:11
 
Fecha de Ingreso: mayo-2009
Mensajes: 13
Antigüedad: 15 años
Puntos: 0
Respuesta: convertir tipos de datos C y gtk

Fijate si te sirve esto: strcpy, strcmp de string.h
  #3 (permalink)  
Antiguo 03/08/2009, 03:37
 
Fecha de Ingreso: julio-2009
Mensajes: 3
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: convertir tipos de datos C y gtk

sirvio para compilar pero al ejecutar la funcion me da fala de segmentacion (señal 11)
te dejo el codigo aver si se te ocurre por que puede ser
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif

#include <gtk/gtk.h>

#include "callbacks.h"
#include "interface.h"
#include "support.h"
#include "string.h"
#include "stdio.h"


void
on_close_clicked (GtkButton *button,
gpointer user_data)
{
GtkWidget *input = lookup_widget (button,"entry1");
GtkWidget *etiqueta = lookup_widget (button,"presentacion");
GtkWidget *boton = lookup_widget (button,"close");
char *texto;
char *textoa;
char textodelta[120];
char alretext[120];
int cuenta1 = 1;
int size;
int size2;

texto = gtk_entry_get_text(GTK_ENTRY(input));
strncpy(textodelta,texto,120);
size = sizeof(textodelta);
size2 = size;
while(size2 != 0)
{alretext[cuenta1] = textodelta[size2];
size2--;
cuenta1++;}
strncpy(textoa,textodelta,120);
gtk_label_set_text(GTK_LABEL(etiqueta),texto);
gtk_button_set_label(GTK_BUTTON(boton),textoa);
}

de todas formas gracias por el esfuerzo
  #4 (permalink)  
Antiguo 05/08/2009, 08:45
Avatar de Anubis_Slash  
Fecha de Ingreso: mayo-2009
Ubicación: aqui y haya
Mensajes: 173
Antigüedad: 15 años
Puntos: 5
Respuesta: convertir tipos de datos C y gtk

hola diegogmx

te pongo tu mismo codigo con lo que pienso puede ser el error, de cualquier forma nos cuentas como te va...

Código:
#include "callbacks.h"
#include "interface.h"
#include "support.h"
#include "string.h"
#include "stdio.h"


void
on_close_clicked (GtkButton *button,
gpointer user_data)
{
GtkWidget *input = lookup_widget (button,"entry1");
GtkWidget *etiqueta = lookup_widget (button,"presentacion");
GtkWidget *boton = lookup_widget (button,"close");
char *texto;
char *textoa;
char textodelta[121];    // modifique el 120 a 121
char alretext[121];    // modifique el 120 a 121
int cuenta1 = 1;
int size;
int size2;

texto = gtk_entry_get_text(GTK_ENTRY(input));
strncpy(textodelta,texto,120);
size = sizeof(textodelta);
size2 = size;
while(size2 != 0)
{alretext[cuenta1] = textodelta[size2];
size2--;
cuenta1++;}
strncpy(textoa,textodelta,120);
gtk_label_set_text(GTK_LABEL(etiqueta),texto);
gtk_button_set_label(GTK_BUTTON(boton),textoa);
}
lo que se modifico es para prevenir el caracter nulo que traen los arreglos, no lo estabas tomando en cuenta...

mira este link para que sepas de que te hablo

http://www.cplusplus.com/reference/c...tring/strncpy/
  #5 (permalink)  
Antiguo 05/08/2009, 13:33
 
Fecha de Ingreso: julio-2009
Mensajes: 3
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: convertir tipos de datos C y gtk

no no funciono creo que es por una incompatibilidad en los tipos de datos, yo hice un coso similar, digo la unica diferencia que tenia es que no invertia el texto

funcionaba sin errores aca el problema es al ejecutarlo pones tu nombre o lo que sea apretas el boton lo que inicia la funcion y en la salida de terminal te dice error de segmentacion

a por las dudas es c comun no c++
  #6 (permalink)  
Antiguo 05/08/2009, 14:37
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
haz que cuenta1 comience en 0, no en 1,

y en general, tal vez no es necesario para este caso particular, es conveniente añadir un \0 al final del strring.
Hacer un strncpy no asegura eso.

Última edición por David; 05/08/2009 a las 14:40 Razón: Combinar mensajes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:16.