sprintf_s生成随机数

时间:2014-01-05 12:23:38

标签: php c++

我的sprintf_s功能有问题。我已声明变量   char postRequest [512] =“”;

现在我用这个函数来格式化我的变量:

sprintf_s(postRequest,
"GET /query/add.php?name=%s&port=%i&qport=%i&players=%i&maxplayers=%i HTTP/1.1\r\n"
"Content-Type: text/plain; charset=UTF-8\r\n"
"Host: xxxxxx-xxx.eu\r\n"
"\r\n", svrname, port, qport, 0, maxplayers);

变量svrname是std :: string,其他变量都是整数。 现在,端口的值为27015,qport为27016,maxplayers为32。 但这是我的问题,只有maxplayers在我的数据库上获得了32的价值。对不起我的英文,请看这张图片:http://prntscr.com/2gpa0b

此外,这是我的PHP脚本,用于处理将这些值添加到表:

$con = mysqli_connect("","","","");
ini_set("display_errors","on");
echo $_GET['port'];
mysqli_query($con,"INSERT INTO servers (name, port, maxplayers, players,ip, qport) VALUES('".$_GET['name']."','".$_GET['port']."','".$_GET['maxplayers']."','0','".$_SERVER['REMOTE_ADDR']."','".$_GET['qport']."')");

希望你知道我的意思。我已经在sprintf_s之前和之后的代码中检查了这些值,一切正常,所以我的代码中一定存在一些问题。

先谢谢。

FIXED: 好的,修好了。感谢帮助。 需要svrname.c_str()。

1 个答案:

答案 0 :(得分:0)

使用%d表示整数,%s表示.c_str() std::string

sprintf_s(postRequest,
 "GET /query/add.php?name=%s&port=%d&qport=%d&players=%d&maxplayers=%d HTTP/1.1\r\n"
 "Content-Type: text/plain; charset=UTF-8\r\n"
 "Host: xxxxxx-xxx.eu\r\n"
 "\r\n", svrname.c_str(), port, qport, 0, maxplayers);