[Error] invalid conversion from 'int' to 'const char*' [-fpermissive]
时间: 2023-07-16 12:13:45 浏览: 295
这个错误通常是因为你在程序中将一个 int 类型的变量直接赋值给了一个 const char* 类型的变量或者函数,导致编译器无法进行自动类型转换而报错。
解决方法有两种:
1. 将 int 类型的变量先转换为字符串类型再进行赋值,可以使用 sprintf 函数:
```c++
int num = 123;
char str[10];
sprintf(str, "%d", num);
const char* ptr = str;
```
2. 如果你只是想把一个整数变量输出到屏幕上,可以使用 cout 或 printf 函数来输出,而不需要将其转换为字符串类型:
```c++
int num = 123;
cout << num << endl; // 使用 cout 输出
printf("%d", num); // 使用 printf 输出
```
希望这些方法能够帮助你解决问题。
相关问题
);//调用删除函数 显示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)
{
//...
}
```
这样修改后,编译器就不会再报错了。
[Error] invalid conversion from 'const char*' to 'int' [-fpermissive]
这个编译错误 "Error: invalid conversion from 'const char*' to 'int' [-fpermissive]" 是C++中常见的类型转换错误。当你试图将一个 `const char*`(常量字符指针)赋值给一个 `int` 类型变量时,编译器无法直接完成这种转换,因为字符指针通常代表的是一个字符串或字符序列,而 `int` 只能存储整数值。
`[-fpermissive]` 标记表明你可能使用了 `-fpermissive` 链接选项,这通常用于宽容某些编译时错误,但这并不意味着错误就不再是错误,只是不再阻止编译过程继续进行。
修复这个问题的方法取决于上下文。以下是一些可能的情况:
1. **如果意图是转换字符串到整数**,你需要使用适当的字符串到整数的函数,如 `std::stoi`(C++11开始可用)或者手动处理字符串转义字符。
```cpp
int num = std::stoi("123"); // 如果字符串是数字
```
2. **如果 `const char*` 指向的是一个整数字面量**,确保正确地传递给需要接收整数的地方。
```cpp
int num = 123; // 或者 const char* str = "123";
int myInt = reinterpret_cast<int>(str); // 不推荐,仅适用于特定情况
```
3. **如果这不是预期的行为**,检查一下代码中是否有误将字符串和整数混淆的地方。
记得在每次尝试强制类型转换之前,都要确保这样做是有意义且符合预期的程序逻辑。如果你能提供具体的代码片段,我可以更准确地指导你解决问题。
阅读全文