我正在阅读这个页面 http://dev.mysql.com/doc/refman/5.0/en/mysql-fetch-row.html 有一行
printf("[%.*s] ", (int) lengths[i],
row[i] ? row[i] : "NULL");
Run Code Online (Sandbox Code Playgroud)
来自代码
MYSQL_ROW row;
unsigned int num_fields;
unsigned int i;
num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
{
unsigned long *lengths;
lengths = mysql_fetch_lengths(result);
for(i = 0; i < num_fields; i++)
{
printf("[%.*s] ", (int) lengths[i],
row[i] ? row[i] : "NULL");
}
printf("\n");
Run Code Online (Sandbox Code Playgroud)
}
[%.*s]那段代码意味着什么?
[%.*s]是printf格式字符串,意思是:
[和](和后空间)被转移原样.通常情况下,您会看到类似.7s7个字符的字符串.*长度的使用意味着从给出的论证中获取它.
那么整行的作用是打印一个字符串,其长度在其中lengths[i],并且其值是row[i](除非row[i]是NULL,在这种情况下它使用文字字符串"NULL").