PLCXProcess.cpp:2641:85: error: invalid conversion from 'int' to 'const char*' [-fpermissive] if (0 != UpdateCommitTimeAndBatchNo(pConn, numIdNo, lBatchNo, nNum, strCreateDate))//nNum t_PLCX_data sequence_no(
时间: 2024-02-14 07:06:43 浏览: 76
这是一段 C++ 代码,编译出错的原因是在第2641行中,函数 UpdateCommitTimeAndBatchNo() 的第一个参数需要传入一个 const char* 类型的参数,但是传入了一个 int 类型的参数。
解决方法是将 numIdNo 转换成 const char* 类型,可以使用 sprintf() 函数将其转换成字符串类型。修改后的代码如下:
```
char strNumIdNo[20];
sprintf(strNumIdNo, "%d", numIdNo);
if (0 != UpdateCommitTimeAndBatchNo(pConn, strNumIdNo, lBatchNo, nNum, strCreateDate)) //nNum t_PLCX_data sequence_no(
```
这样就可以将 numIdNo 转换成字符串类型,传入函数中,解决编译错误。
相关问题
PLCXProcess.cpp:2241:32: error: invalid user-defined conversion from 'int' to 'const string& {aka const std::basic_string<char>&}' [-fpermissive] myStmt->setString(2, mediumNo); ^ In file included from /app/smsprev4/opt/gcc-4.8.5/include/c++/4.8.5/string:53:0, from PLCXProcess.h:10, from PLCXProcess.cpp:9: /app/smsprev4/opt/gcc-4.8.5/include/c++/4.8.5/bits/basic_string.tcc:212:5: note: candidate is: std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>] <near match> basic_string<_CharT, _Traits, _Alloc>:: ^ /app/smsprev4/opt/gcc-4.8.5/include/c++/4.8.5/bits/basic_string.tcc:212:5: note: no known conversion for argument 1 from 'int' to 'const char*' PLCXProcess.cpp:2241:32: error: invalid conversion from 'int' to 'const char*' [-fpermissive] myStmt->setString(2, mediumNo);
这个错误是由于在PLCXProcess.cpp文件的第2241行,将一个int类型的变量作为第二个参数传递给了myStmt->setString()函数,而该函数的第二个参数需要是一个const string&类型的变量,因此导致了类型不匹配的错误。建议将该int类型的变量转换为string类型后再进行传递。
);//调用删除函数 显示26 19 D:\C语言\C语言课后作业\实验13.5.cpp [Error] invalid conversion from 'const char**' to 'char**' [-fpermissive]
这个错误是因为 `del_name` 函数的参数类型是 `char **`,表示一个指向指针数组的指针,而 `name` 数组的类型是 `const char *` 指针数组,表示一个指向只读字符串常量的指针数组,两者类型不匹配。
为了解决这个错误,你可以修改 `del_name` 函数的参数类型为 `const char **`,表示一个指向只读字符串常量的指针数组的指针,代码如下:
```
int del_name(const char **name, int n)
{
//...
}
```
这样修改后,编译器就不会再报错了。
阅读全文