我现在有这个功能,打印出我的表的每一行打印出表的列名
static int callback(void *NotUsed, int argc, char **argv, char **szColName)
{
for(int i = 0; i < argc; i++)
{
cout.width(17); cout << left << argv[i];
}
std::cout << "\n";
return 0;
}
我如何打印出szColName,使得其仅在顶部出现一次,而不是它多次出现? 尝试这样:
static int callback(void *NotUsed, int argc, char **argv, char **szColName)
{
int n = sizeof(szColName)/sizeof(szColName[0]);
for (int i = 0; i < n; i++)
{
cout.width(17); cout << left << szColName[i];
}
printf("\n");
for(int i = 0; i < argc; i++)
{
cout.width(17); cout << left << argv[i];
}
std::cout << "\n";
return 0;
}
但后输出行值
但我不认为'sizeof(szColName)/ sizeof(szColName [0])'给出'n'。划分两个指针的大小可能会给你'1'。 – phoeagon 2013-02-17 10:33:57
您可能会在调用函数时第一次打印标题(以及关于何处保留此“第一次”标志,请查看'void * NotUsed')。 – 2013-02-17 10:34:24