2013-02-16 3 views
-1

다음 콜백 함수가 있습니다.콜백 함수의 출력 형식 지정

1 mark  [email protected]  98989898 mark  mark  ADMN U Where are you studying SIM 0 
2 ken  [email protected]  92222898 ken  ken  ADMN U Where are you studying SIM 0 
3 joseph [email protected] 92333718 joseph joseph ADMN U Where are you studying SIM 0 
4 ricky  [email protected]  81822801 ricky  ricky  ADMN U Where are you studying SIM 0 
5 ck  [email protected]  94567828 ck  ck  ADMN U Where are you studying SIM 0 

내가 콜백 함수에서이를 사용하여 시도 :

를 다음 출력

1 
mark 
[email protected] 
98989898 
mark 
mark 
ADMN 
U 
Where are you studying 
SIM 
0 

2 
ken 
[email protected] 
92222898 
ken 
ken 
ADMN 
U 
Where are you studying 
SIM 
0 

3 
joseph 
[email protected] 
92333718 
joseph 
joseph 
ADMN 
U 
Where are you studying 
SIM 
0 

4 
ricky 
[email protected] 
81822801 
ricky 
ricky 
ADMN 
U 
Where are you studying 
SIM 
0 

5 
ck 
[email protected] 
94567828 
ck 
ck 
ADMN 
U 
Where are you studying 
SIM 
0 

I가 수직 대신 같이 가로 포맷 할 필요를 생성

// This is the callback function to display the select data in the table 
static int callback(void *NotUsed, int argc, char **argv, char **szColName) 
{ 
    for(int i = 0; i < argc; i++) 
    { 
     std::cout << " = " << argv[i] << std::endl; 
    } 

    std::cout << "\n"; 

    return 0; 
} 

// prepare our sql statements 
const char *pSQL[6]; 
pSQL[0] = "SELECT * FROM User"; 

// execute sql 
for(int i = 0; i < 1; i++) 
{ 
    rc = sqlite3_exec(db, pSQL[i], callback, 0, &szErrMsg); 
    if(rc != SQLITE_OK) 
    { 
     std::cout << "SQL Error: " << szErrMsg << std::endl; 
     sqlite3_free(szErrMsg); 
     break; 
    } 
} 

1) std::cout << argv[i] << "\t"; 
2) std::cout << argv[i] << setw(15); 
3) std::cout << setw(15) << argv[i]; 

하지만 나에게 준 모든 형식이 잘못되었습니다.

1 mark [email protected] 98989898 mark mark ADMN U Where are you studying SIM 0 
2 ken [email protected] 92222898 ken ken ADMN U Where are you studying SIM 0 
3 joseph [email protected] 92333718 joseph joseph ADMN U Where are you studying SIM 0 
4 ricky [email protected] 81822801 ricky ricky ADMN U Where are you studying SIM 0 
5 ck [email protected] 94567828 ck ck ADMN U Where are you studying SIM 0 

답변

0

for 루프 안에 std::endl을 사용하지 마십시오. 이 조작자는 for 루프의 각 항목을 새 행에 인쇄합니다.

+0

예, std :: endl을 제거하고 후자의 세 가지 중 하나를 시도했습니다 : 1) std :: cout << argv [i] << "\ t"; 2) std :: cout << argv [i] << setw (15); 3) std :: cout << setw (15) << argv [i]; –