C++ lua_tinker如何正确解析德语中的国际化浮点数?

C++ lua_tinker如何正确解析德语中的国际化浮点数?,c++,lua,cocos2d-x,C++,Lua,Cocos2d X,由于项目需要国际化支持,因此项目采用lua_tinker封装。但是,在德国系统中,由于德国使用“,”作为十进制分隔符,因此项目无法正确解析lua文件。如何强制lua_tinker使用“.”作为小数分隔符 例如 llex.c 静态整型只读数字(LexState*LS,整型周期,SemInfo*SemInfo){ //setlocale(LC_ALL,“C”); buffreplace(负载感应,负载感应->下降点'。) int-isReal=0; int startsWithZero=LS->cu

由于项目需要国际化支持,因此项目采用lua_tinker封装。但是,在德国系统中,由于德国使用“,”作为十进制分隔符,因此项目无法正确解析lua文件。如何强制lua_tinker使用“.”作为小数分隔符

例如

llex.c
静态整型只读数字(LexState*LS,整型周期,SemInfo*SemInfo){
//setlocale(LC_ALL,“C”);
buffreplace(负载感应,负载感应->下降点'。)
int-isReal=0;
int startsWithZero=LS->current='0';
尺寸=0;
校验缓冲区(LS,l);
如果(期间){
保存(LS,“.”,l);
以色列=1;
}  
如果(从零开始){
下一步(LS);
如果(LS->current=='x'){
/*处理十六进制数*/
int ch=0;
int c=0;
int i=0;
int numDigits=8;
下一步(LS);
做{
ch=tolower(负载->电流);
国际单项体育联合会(国际单项体育联合会)
c=16*c+(ch-'0');
否则,如果(通道>='a'&通道电流);
}而(++i='a'&&chr=c;
返回TK_编号;
}否则{
校验缓冲区(LS,1);
保存(LS,'0',l);
}
}
而(lex_isdigit(LS->current)){
校验缓冲区(LS,l);
保存_和_next(LS,l);
}
如果(LS->current=='。){
以色列=1;
保存_和_next(LS,l);
如果(LS->current=='。){
保存_和_next(LS,l);
保存(LS,'\0',l);
luaX_lexerror(LS,
“不明确语法(小数点x字符串串联)”,
TK_编号);
}
}
而(lex_isdigit(LS->current)){
校验缓冲区(LS,l);
保存_和_next(LS,l);
}
如果(LS->current==“e”| LS->current==“e”){
以色列=1;
保存_和_next(LS,l);/*读'E'*/
如果(LS->current=='+'|LS->current==='-')
保存_和_next(LS,l);/*可选指数符号*/
而(lex_isdigit(LS->current)){
校验缓冲区(LS,l);
保存_和_next(LS,l);
}
}
保存(LS,'\0',l);
如果(以色列){
如果(!luaO_str2d(luaZ_缓冲区(LS->buff),&seminfo->r))
luaX_lexerror(LS,“格式错误的编号”,TK_编号);
返回TK_编号;
}否则{
如果(!luaO_str2d(luaZ_缓冲区(LS->buff),&seminfo->r))
luaX_lexerror(LS,“格式错误的整数”,TK_编号);
返回TK_编号;
}
}
//lobject.c
int luaO_str2d(常量字符*s,lua_编号*结果){
//设置语言环境(LC_数字,“C”);
char*endptr;
lua\U编号res=lua\U STR2编号(s和endptr);
如果(endptr==s)
返回0;/*无转换*/
而(isspace((unsigned char)(*endptr)))endptr++;
如果(*endptr!='\0')
返回0;/*无效的尾随字符*/
*结果=res;
返回1;
}
关于lua
局部a=3.3是错误

请给出无法解析的Lua文件的示例。请给出无法解析的Lua文件的示例。