gpt4 book ai didi

c++ - 如何更新已经存在的 cout 语句的内容

转载 作者:行者123 更新时间:2023-11-30 03:13:16 26 4
gpt4 key购买 nike

我正在使用 C++ 中的 mySql 创建一个应用程序,问题就像我们可以在网站上编辑我们的帖子和评论一样,我想从 mySql 表中获取一个单元格并想要编辑特定的单元格。

例如:我正在获取一条记录,上面写着“嘿,这是一篇测试帖子”,当我在我的应用程序中获取记录时,用户可以将帖子更新为“嘿,这是一篇新帖子”。

现在的问题是,我无法更新 cout 语句。如何获取记录、显示它并在显示它的同时修改它的内容?

我已经尝试使用 strcpy 并通过获取记录并将其复制到字符串中将其保存在本地字符串中,但这没有按预期工作

void editPost(){
system("cls");
string dummy;
MYSQL* conn;
MYSQL_ROW row;
MYSQL_RES* res;
conn = mysql_init(0);
conn = mysql_real_connect(conn, "192.168.0.110", "admin", "admin", "search_engine", 0, NULL, 0);
string strBuff[1000];
if(conn){
int qstate = 0;
int id;
cout << "Enter id : ";
cin>>id;
stringstream ss;
ss<<"SELECT content FROM se__dbms where id = '" << id <<"'";
string query = ss.str();
const char* q = query.c_str();
if(conn){
int qstate = mysql_query(conn, q);

if(!qstate){
res = mysql_store_result(conn);
while(row = mysql_fetch_row(res)){
strBuff[1000]=row[0];
}
cout<<strBuff[1000]; /*problem over here,
what can i change in this cout statement
that it will even display the contents,
and the user can edit it as well */
ss << "UPDATE se__dbms SET content = " << strBuff << " WHERE id = '" << id << "'";
}
}
if(qstate == 0){
cout << "Record Updated..." << endl;
cout << "Press B to go back";
cin >> dummy;
}
else{
cout << "Insert Error" << mysql_error(conn) << endl;
cout << "Press B to go back";
cin >> dummy;
}
}else{
cout << "Connection Error" << endl;
cout << "Press B to go back";
cin >> dummy;
}

system("pause");
system("cls");
}

实际输出:

输入编号:1嘿,这是一个测试帖子//不可编辑按b退出


预期结果:

输入编号:1嘿,这是一篇新文章//可以编辑

最佳答案

您似乎正在尝试制作某种允许用户编辑表中值的交互式应用程序。通过更改已写入输出的内容,这不起作用。相反,您可以提示用户从 cin 中输入一个新值(就像您按下“B”按钮时所做的那样)。然后您可以将更新后的值存储在表中。像这样的东西(未经测试的代码):

cout << "current value: " << strBuff[1000] << endl;
cout << "Enter new value (ENTER to keep value): " << flush;
string newvalue;
cin >> newvalue;
if ( newvalue.size() > 0 ) {
stringstream update;
update << "UPDATE se__dbms SET content = " << newvalue << " WHERE id = '" << id << "'";
// execute the SQL statement
...
}

如果您需要看起来更像表格编辑器的东西(用户可以就地编辑数据),那么您将不得不使用 ncurses 之类的东西,它允许您读取控制台中特定位置的字符,甚至是某种图形用户界面。

关于c++ - 如何更新已经存在的 cout 语句的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58813155/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com