C++ 为读线缓冲区提供初始文本
在readline缓冲区中,我想提供一个用户可以编辑的初始值。这可以是默认值,也可以是已保存到我的数据库中的字段的旧值。输入的值不应添加到读线历史记录中,因为它只是“数据”而不是命令 从这里和互联网上的示例中,我了解到此代码应该可以完成以下工作:C++ 为读线缓冲区提供初始文本,c++,readline,default-value,C++,Readline,Default Value,在readline缓冲区中,我想提供一个用户可以编辑的初始值。这可以是默认值,也可以是已保存到我的数据库中的字段的旧值。输入的值不应添加到读线历史记录中,因为它只是“数据”而不是命令 从这里和互联网上的示例中,我了解到此代码应该可以完成以下工作: char *deftext; int MatCustom::set_deftext () { // cout << "set_deftext called ... deftext: " << def
char *deftext;
int MatCustom::set_deftext ()
{
// cout << "set_deftext called ... deftext: " << deftext << endl;
if (deftext)
{
// cout << "inserting..." << endl;
rl_insert_text(deftext);
// rl_line_buffer = deftext;
// cout << rl_stuff_char('J') << endl;
rl_redisplay();
deftext = (char *)NULL;
rl_startup_hook = (rl_hook_func_t *)NULL;
// rl_pre_input_hook = (rl_hook_func_t *)NULL;
};
return 0;
}
string MatCustom::getlineWithoutHistory(const string &field) {
string returnString;
const char *buffer;
char *cstr = new char[field.length() + 1];
strcpy(cstr, field.c_str());
deftext = cstr;
// cout << "Deftext in getLineWithoutHistory: " << deftext << endl;
rl_startup_hook = set_deftext;
// rl_pre_input_hook = set_deftext;
buffer = :: readline("");
if (buffer != nullptr) {
returnString = buffer;
} else {
returnString = "";
}
free((void *) buffer);
delete [] cstr;
return returnString;
}
编辑到提供的值(原始值)。请尝试创建一个显示给我们。是否
MatCustom::set_deftext
astatic
成员函数?相应地编辑了我的问题。
input = MatCustom::getlineWithoutHistory(rawValue);