您好,我的问题是,我在键盘输入的值,到了函数中执行的语句却变成了乱码,麻烦各位兄弟帮帮忙
void Mysql::Delect()
{
int n;
string id{}, clas{}, name{}, sum{}, time{}, price{}, sumprice{};
delect_menu();
cout << "请按键输入选择你要删除的表:" << endl;
cin >> n;
system("cls");
switch (n)
{
case 1:
cout << "请依次输入需要删除的输入设备编号,设备类别,设备名称,设备总数量,购买时间,单价,总价格分别用空格隔开" << endl;
cin >> id >> clas >> name >> sum >> time >> price >> sumprice;
Mysql::Delect_1(id, clas, name, sum, time, price, sumprice);
cout << "请按任意键返回主菜单" << endl;
cin >> n;
Mysql::user_choice();
case 2:
cout << endl;
cout << "请按任意数字返回主菜单" << endl;
cin >> n;
Mysql::user_choice();
case 0:
Mysql::user_choice();
default:
printf("输入错误,请重新输入:");
system("pause");
Mysql::Delect();
}
}
bool Mysql::Delect_1(std::string id, std::string clas, std::string name, std::string sum, std::string time, std::string price, std::string sumprice)
{
char sql[MAXLENGTH];
strcpy_s(sql, "set names gbk");
snprintf(sql, MAXLENGTH, "delect from 设备表 where id = %s, clas = %s, name = %s, sum = %s, time = %s, price = %s, sumprice = %s", id, clas, name, sum, time, price, sumprice);
cout << sql << endl;
if (mysql_query(mysql, sql))
{
cout << "Query Error: " << mysql_error(mysql) << endl;
return false;
}
else
cout << "删除成功!" << endl;
return true;
}
这有可能是编码的原因,你需要把它改成utf-8试试。