我現在有這個功能,打印出我的表的每一行打印出表的列名
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