首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CGI >

CGI程序中 sscanf 函数的一个数据类型(是什么门类啊)

2012-12-31 
CGI程序中 sscanf 函数的一个数据类型(是什么类型啊)char *msg NULL, *errmsg NULLconst char *mac_a

CGI程序中 sscanf 函数的一个数据类型(是什么类型啊)
char *msg = NULL, *errmsg = NULL;
const char *mac_address;
char filename[50] = {0}, index_name[30] = {0}, device_id[18] = {0}, user_id[50] = {0}, sql_where[100] = {0}, filepath[FILE_PATH]={0}, sql_cmd[200] = {0}, md5_user[35] = {0}, os[8] = {0};
sqlite3 *db = NULL;
int rc = 0, auth = 0, album = 0



sscanf(msg, "pic=%[^&]&album=%d&index_name=%[^&]&user_id=%[^&]&device_id=%s", filename, &album, index_name, user_id, device_id);


最近看到CGI程序,不明白  上例中  sscanf 中  “%[^&]”是什么格式,希望得到大家的指点,谢谢
[解决办法]
从buffer里面读取到指定&为止的字符串,[^&]类似正则

比如

#include <iostream>
#include<cstdio>

int main()
{
const char* b= "asd&vc";
char a[10] = "";
sscanf(b, "%[^&]", a);
std::cout<<a<<std::endl;
return 0;
}

最后a就是asd

[解决办法]
pic=%[^&]&album=%d&index_name=%[^&]&user_id=%[^&]&device_id=%s
这一坨就是为了把传过来的参数挨个的读取出来,因为参数是以&为间隔,所以第一个参数会读到第一个&停止,以此类推,最后一个%s就把剩下的串给读完了。

热点排行