2011-11-30 4 views
0

그럼, 거래를 heres, 나는 이것에 GTK를 사용하고 있습니다.char를 gchar으로 변환

나는 set_entry_text에 이름을 묻습니다. 그래서 사용자는 그의 이름을 입력하고 해당 변수를 char로 저장합니다. 이

char *jugador1, *jugador2 ///they're in a structure 

void obten_nombre (GtkWidget *widget, gpointer info) 
{ 
    WIDGETS *elementos = (WIDGETS *)info; 
    gchar *j1, *j2; 

    j1=malloc(50 *sizeof(gchar)); 
    j2=malloc(50 *sizeof(gchar)); 
    strcpy(j1,gtk_entry_get_text(GTK_ENTRY(elementos->entry_j1))); 
    strcpy(j2,gtk_entry_get_text(GTK_ENTRY(elementos->entry_j2))); 
    strcpy(elementos->jugador1, j1); 
    elementos->jj1=j1; 
    // strcpy(elementos->jugador2, j2); 
    g_print("Jugador1: %s\n", elementos->jugador1); 
    gtk_widget_hide_all(elementos->ventana_popup2); 
    gtk_widget_show_all(elementos->ventana_principe); 
} 

나는 elementos->jugador1char 변수를 만들고있어.

나는 캐스트를 만들고있어 :

gchar auxjugador1; 

가 어떻게

auxjugador1 = elementos->jugador1 

그래서 나는

gtk_entry_set_text(GTK_ENTRY(elementos->nombre_jugador1),auxjugador1); 

가 너희들을 감사 할 수 있습니다 만들 수 있습니다!

답변

0

jugador1char 변수가 아닙니다. char * (포인터)입니다.

포인터를 gchar에 넣을 수 없습니다.

다른 포인터를 만들어 기존 데이터를 가리 키거나 복사본을 저장할만큼 큰 배열을 선언 한 다음 strcpy을 사용할 수 있습니다.

+0

예, 저는 strcpy (auxjugador1, jj1)을 시도해 보았습니다. 둘 다 gchar ... 제가 올바르게하고 있습니까? – drodri420

+0

@ drodri420 :'strcpy'를 사용하려면'auxjugador'를 문자열을 담을만큼 충분히 큰 배열로 만들어야합니다. 'gchar auxjugador [1000];처럼. –

관련 문제