gpt4 book ai didi

c++ - 如何在 C++ 中将 'error: invalid conversion from ‘int’ 修复为 ‘const char*’ [-fpermissive]'?

转载 作者:行者123 更新时间:2023-11-28 04:15:24 25 4
gpt4 key购买 nike

我尝试连接mysql和c++。这是尝试将输入的值放入数据库的过程。g++编译出错。

我在 Visual Studio 2017 和 CentOS7 中使用 C++98 进行编码。使用的Mysql Connector是Mysql++ ver.8.0。

#include "[~ PATH]/mysql++/include/mysql++/cmdline.h"
#include "[~ PATH]/mysql++/include/mysql++/mysql++.h"
#include "[~ PATH]/mysql++/examples/printdata.h"
#include <iostream>
#include <iomanip>
#include <string>
#include <stdio.h>
#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])
{
char buffer[256];
string name;
string id;
string password;
string department;

cout << ">> Sign Up <<\n" << endl;
cout << "1.Name: "; cin >> name;
cout << "2.ID: "; cin >> id;
cout << "3.PASSWORD: "; cin >> pw;
cout << "4.Department: "; cin >> dpt;

mysqlpp::Connection conn(false);
if (conn.connect("member_list", "localhost", "user", "password1234"))
{
**mysqlpp::Query query
= conn.query(sprintf(buffer,"INSERT INTO signup_member (name,id,password,department)
VALUES ('%s','%s','%s','%s')",name.c_str(),id.c_str(),password.c_str(),department.c_str()));**
if (mysqlpp::StoreQueryResult res = query.store()) {
cout << "Sign up SUCCESS!" << endl;
}
else {
cerr << "Sign up FAIL. Try again." << '\n' << query.error() << endl;
return 1;
}
return 0;
}
else {
cerr << "DB connection failed: " << conn.error() << endl;
}
}

当我搜索时,它说使用“​​sprintf”将值保存在缓冲区中,然后将其保存在数据库中。我希望它运作良好,但事实并非如此。sign_up.cpp:30:175:错误:从“int”到“const char*”的无效转换 [-fpermissive]

最佳答案

sprintf 返回一个 int 表示

On success, the total number of characters written is returned. This count does not include the additional null-character automatically appended at the end of the string. On failure, a negative number is returned.

& 而不是您所期望的写入数据的字符数组,所以基本上您应该这样做:

sprintf(buffer,"INSERT INTO signup_member (name,id,password,department) 
VALUES ('%s','%s','%s','%s')",name.c_str(),id.c_str(),password.c_str(),department.c_str());
mysqlpp::Query query
= conn.query(buffer);

关于c++ - 如何在 C++ 中将 'error: invalid conversion from ‘int’ 修复为 ‘const char*’ [-fpermissive]'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56749124/

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