首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误:从'const char*‘到'unsigned char’的转换无效[-fpermissive]

错误:从'const char*‘到'unsigned char’的转换无效[-fpermissive]
EN

Stack Overflow用户
提问于 2021-11-21 16:42:44
回答 3查看 140关注 0票数 1

我计划使用C++来制作一个随机密码生成器(代替python来提高速度),所以我输入了字符。当我输入所有字符时,出现错误:

代码语言:javascript
运行
复制
warning: character constant too long for its type
 const unsigned char chars[] = {"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@#$%^&*()-_=+[{]}\\|;:'" + '",<.>/?'};
                                                                                                       ^~~~~~~~~

main.cpp:3:123: error: invalid conversion from 'const char*' to 'unsigned char' [-fpermissive]
 const unsigned char chars[] = {"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@#$%^&*()-_=+[{]}\\|;:'" + '",<.>/?'};
代码语言:javascript
运行
复制
#include <iostream>

const unsigned char chars[] = {"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@#$%^&*()-_=+[{]}\\|;:'" + '",<.>/?'};
//abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
int main(){
    std::cout << chars;
    return 0;
}
EN

回答 3

Stack Overflow用户

发布于 2021-11-21 17:09:24

您尝试过使用std::string吗?它们更易于操作,也更类似于python。

票数 1
EN

Stack Overflow用户

发布于 2021-11-21 20:37:08

您在第二部分中使用了'",<.>/?‘。您通常可以将’‘与字符一起使用。请在后面使用转义字符\

代码语言:javascript
运行
复制
#include <iostream>

const std::string chars= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/?";

//abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
int main(){
    std::cout << chars;
    return 0;
}
票数 0
EN

Stack Overflow用户

发布于 2021-11-22 11:03:42

代码如下(已修复):

代码语言:javascript
运行
复制
#include <iostream>

using namespace std;

//abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
class generate{
    public:
        void generate_random_password(){
            const char* word = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@#$%^&*()-_=+[{]}\\|;:',<.>/?\"";
            cout << word;
        }
};
int main(){
    generate test;
    test.generate_random_password();
    int test2;
    std::cin >> test2;
    return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70056570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档