2014-07-26 4 views
1

루아에서 문자열을 C++의 char로 가져 오려고합니다. 그러나 어떤 이유로 포인터 나 숫자를 반환합니다. 이 도움을받을 수 있습니다.lua 파일에서 C++로 문자열을 가져 오는 방법

루아 파일 :

logo = "ad.png" 

C 파일 :

lua_State *L = luaL_newstate(); 
luaL_openlibs(L); 
luaL_dofile(L,"fuel.lua"); 
const char* logoX; 

lua_getglobal(L, "logo"); 
if(lua_isnil(L,-1)){ 
    printf("is nil!\n"); 
} 
else{ 
    logoX = lua_tostring(L, -1); 
    printf("the logo is %d\n", *logoX); 
} 

하지만이 말한다 텍스트를 인쇄하고는 "로고는 105 여기에 내가 할 노력하고있어의 예입니다 ". 어떤 도움을 주셔서 감사합니다. 고맙습니다!

+0

당신은'printf'에서'%의 d'를 사용, 즉'%의 s' 안 :

는에 printf 문을 변경, 그것이 작동되도록하려면? – user2802841

답변

2

문제는 printf 문에 : 당신은 정수 형식 문자열 (%d)를 사용하는, 당신은 문자 인수 (당신의 문자열의 첫 번째 문자 *logoX)를 보내는

printf("the logo is %d\n", *logoX); 

. 따라서 인쇄 된 값은 문자열의 첫 번째 문자 정수 값입니다.

printf("the logo is %s\n", logoX); 
+0

감사합니다. – gregyjames

관련 문제