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);
时间: 2024-04-28 20:24:16 浏览: 161
这个错误是由于在PLCXProcess.cpp文件的第2241行,将一个int类型的变量作为第二个参数传递给了myStmt->setString()函数,而该函数的第二个参数需要是一个const string&类型的变量,因此导致了类型不匹配的错误。建议将该int类型的变量转换为string类型后再进行传递。
相关问题
/home/topeet/Qt_Project/homework1/widget.cpp:81: error: invalid conversion from 'std::basic_string<char>::size_type {aka unsigned int}' to 'const char*' [-fpermissive] std::string image = ((const unsigned char*)buffer.str().data(), buffer.str().size()); ^
这个错误提示说明在你的代码中,你将一个 `std::string` 类型的变量 `image` 赋值给了一个表达式 `((const unsigned char*)buffer.str().data(), buffer.str().size())`,但是这个表达式的类型是 `unsigned int`,与 `std::string` 类型不匹配,导致编译器报错。
可能是你想要将 `buffer.str()` 转换成 `unsigned char*` 类型,然后存储到 `std::string` 类型的变量 `image` 中。你可以将 `((const unsigned char*)buffer.str().data(), buffer.str().size())` 修改为 `std::string((const char*)buffer.str().data(), buffer.str().size())`,这样就可以将 `buffer.str()` 转换成 `std::string` 类型,然后存储到 `image` 变量中。
修改后的代码如下:
```cpp
std::string image((const char*)buffer.str().data(), buffer.str().size());
```
这样就可以避免这个错误了。
153 36 C:\Users\guozihang\Desktop\os\1.cpp [Error] invalid cast from type 'const value_type {aka const std::sub_match<__gnu_cxx::__normal_iterator<const char*, std::basic_string<char> > >}' to type 'int'
这个错误通常发生在你试图将一个不同类型的对象转换成 `int` 类型时。从错误信息来看,可能是在使用正则表达式时出现问题。
请检查你的代码,特别是使用正则表达式的部分,看看是否有将 `std::sub_match` 对象转换成 `int` 类型的操作。如果有,请修改为正确的类型转换方式,或者检查正则表达式的匹配结果是否正确。
阅读全文