C++从'char'到'const char*'的无效转换 [-允许]|

C++ invalid conversion from 'char' to 'const char*' [-fpermissive]|

本文关键字:char 允许 转换 const C++ 无效      更新时间:2023-10-16

我对这段代码有问题:

void keylist(char key)
{
   //check if the user presses a key
   if(GetAsyncKeyState(key))
   {
      string skey = key;
      buffer.append(skey);
      counter++;
   }
}

每次我尝试运行程序时,都会出现以下错误:CodeBlocks Projects\CB32KLG\main.cpp|66|错误:从"char"到"const char*"的转换无效[-fpermission]|

这是因为这个

string skey = key;

字符串中并没有重载构造函数,它只接受字符作为输入。请参阅以下完整列表:-

string();
string (const string& str); 
string (const string& str, size_t pos, size_t len = npos);  
string (const char* s); 
string (const char* s, size_t n);   
string (size_t n, char c);  
template <class InputIterator>
  string  (InputIterator first, InputIterator last);

要修复,您可以使用:-

string skey(1, key);
  string skey = key;

string中没有一个可行的转换构造函数只需要一个char
初始化如下:

string skey{key};

或者这个:

string skey(1, key);
相关文章: