C++ 如何在for循环中保存变量?

C++ 如何在for循环中保存变量?,c++,for-loop,random,var,C++,For Loop,Random,Var,我制作了一个随机密码生成器。在函数void passwordGenerator(int-sizeOfPassword) 这里的问题是,我试图将程序生成的密码保存在sum中,但我不知道如何正确保存 如何在sum中保存随机数字密码 #include <iostream> #include <ctime> #include <cstdlib> using namespace std; void passwordGenerator(int sizeOfPasswo

我制作了一个随机密码生成器。在函数
void passwordGenerator(int-sizeOfPassword)
这里的问题是,我试图将程序生成的密码保存在
sum
中,但我不知道如何正确保存

如何在
sum
中保存随机数字密码

#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

void passwordGenerator(int sizeOfPassword)
{
    srand(time(NULL));

    char allChars[] = {"0123456789!@#$%^&*abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
    char sum;
    for(int i = 0; i < sizeOfPassword; i++){
        sum = sum + allChars[rand()%sizeOfPassword];
    }
    std::cout<<sum<<std::endl;
}

int main()
{
    int sizeOutput;
    char wannaPlay = 'y';
    while(wannaPlay == 'y'){
        std::cout<<"Enter the size of password: ";
        std::cin>>sizeOutput;
        passwordGenerator(sizeOutput);
        std::cout<<"\nRun Again[y/n]? : ";
        std::cin>>wannaPlay;
    }
    return 0;
}
#包括
#包括
#包括
使用名称空间std;
无效密码生成器(int sizeOfPassword)
{
srand(时间(空));
char allChars[]={“0123456789!@$%^&*abcdefghijklmnopqrstuvwxyzabefghijklmnopqrstuvwxyz”};
字符和;
对于(int i=0;istd::cout您可以逐字显示:

void passwordGenerator(int sizeOfPassword)
{
    const char allChars[] = {"0123456789!@#$%^&*abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
    for (int i = 0; i < sizeOfPassword; i++){
        std::cout << allChars[rand() % sizeof (allChars)];
    }
}
void密码生成器(int-sizeOfPassword)
{
const char allChars[]={“0123456789!@$%^&*abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz”};
对于(int i=0;istd::cout您似乎想保存一个字符序列而不是单个字符。尝试使用
std::string
+=
来添加每个字符。@RetiredInja是的,我正在尝试获取数组的序列
sum
是单个字符,请将其更改为
std::string
,如果您想要数组,可以使用
sum.data()
在完成构建string@AlanBirtles
std::string sum=sum+allChars[rand()%sizeOfPassword]
像这样?@AndrewTruckle我肯定会研究它,但这不是知识差距,而是实践和经验。感谢bud,我之前使用了您提到的第一个代码,但我需要将输出存储在变量中,再次感谢您
std::string passwordGenerator(int sizeOfPassword)
{
    const char allChars[] = {"0123456789!@#$%^&*abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
    std::string password;
    for (int i = 0; i < sizeOfPassword; i++){
        password += allChars[rand() % sizeof (allChars)];
    }
    return password;
}