while(in) {
memset(str, 0,1024);
in.getline(str, 1024); // delim defaults to '\n'
string output = modifyString(str);
if (output != ""){
cout << output << endl;
string output1 = "INSERT INTO DATA_SRC "\
"VALUES (" + output + ");";
cout << output1 << endl;
const char * command = output1.c_str();
cout << output << endl;
rc = sqlite3_exec(db, command, callback, 0, &zErrMsg);
if( rc != SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
return 1;
}
}
在这里,我+两个字符串在一起。 最后出现的是: 'D3318',“D.A。克莱恩','通过GLC分离TMS衍生物定量测定水果中的糖',1970年,'AOAC国际期刊',53,6,1198,1202
这很好。但是在我将它与其他人结合后。
预期: 插入DATA_SRC值('D3318','DA Kline','通过GLC分离TMS衍生物定量测定水果中的糖',1970,'AOAC International杂志',53,6,1198,1202);
现实: 插入DATA_SRC值('D3318','DA Kline','通过GLC分离TMS衍生物定量测定水果中的糖',1970,'Journal of AOAC In); rnational',53,6,1198,1202
我现在不知道为什么。
答案 0 :(得分:1)
您的modifyString
函数(您没有显示)正在将空字节复制到字符串的末尾。字符串输出函数将在空字节上停止,以便与C字符串兼容。