我计划使用C++来制作一个随机密码生成器(代替python来提高速度),所以我输入了字符。当我输入所有字符时,出现错误:
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`~!@#$%^&*()-_=+[{]}\\|;:'" + '",<.>/?'};
#include <iostream>
const unsigned char chars[] = {"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@#$%^&*()-_=+[{]}\\|;:'" + '",<.>/?'};
//abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
int main(){
std::cout << chars;
return 0;
}
发布于 2021-11-21 17:09:24
您尝试过使用std::string吗?它们更易于操作,也更类似于python。
发布于 2021-11-21 20:37:08
您在第二部分中使用了'",<.>/?‘。您通常可以将’‘与字符一起使用。请在后面使用转义字符\
#include <iostream>
const std::string chars= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/?";
//abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
int main(){
std::cout << chars;
return 0;
}
发布于 2021-11-22 11:03:42
代码如下(已修复):
#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;
}
https://stackoverflow.com/questions/70056570
复制相似问题