首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试显示字符数组C++时出现奇怪的输出

尝试显示字符数组C++时出现奇怪的输出
EN

Stack Overflow用户
提问于 2021-04-20 01:56:22
回答 1查看 38关注 0票数 1

我正在尝试创建一个包含特定序列中的字符数组的Rotor结构。

代码语言:javascript
复制
struct Rotor
{
public:

    char assignedRotor[26];

    void setRotor(int rotor)
    {
        switch(rotor)
        {
            case(1):
                for(int i; i < sizeof(rotor1); i++)
                {
                    assignedRotor[i] = rotor1[i];
                }
                break;
            case(2):
                for(int i; i < sizeof(rotor1); i++)
                {
                    assignedRotor[i] = rotor2[i];
                }
                break;
            case(3):
                for(int i; i < sizeof(rotor1); i++)
                {
                    assignedRotor[i] = rotor3[i];
                }
                break;
        };
    }
private:
    char rotor1[26] = {'E', 'K', 'M', 'F', 'L', 'G', 'D', 'Q', 'V', 'Z', 'N', 'T', 'O', 'W', 'Y', 'H', 'X', 'U', 'S', 'P', 'A', 'I', 'B', 'R', 'C', 'J'};
    char rotor2[26] = {'A', 'J', 'D', 'K', 'S', 'I', 'R', 'U', 'X', 'B', 'L', 'H', 'W', 'T', 'M', 'C', 'Q', 'G', 'Z', 'N', 'P', 'Y', 'F', 'V', 'O', 'E'};
    char rotor3[26] = {'B', 'D', 'F', 'H', 'J', 'L', 'C', 'P', 'R', 'T', 'X', 'V', 'Z', 'N', 'Y', 'E', 'I', 'W', 'G', 'A', 'K', 'M', 'U', 'S', 'Q', 'O'};
};

第一个和第三个转子配置没有问题。但是,当我尝试显示第二个转子时:

代码语言:javascript
复制
int main()
{
    Machine enig;

    for(int i; i < 26; i++)
    {
        cout << enig.rotor2.assignedRotor[i] << endl;
    };

    return 0;

}

我将其作为输出:

EN

回答 1

Stack Overflow用户

发布于 2021-04-20 02:02:42

在c++中,如果你要声明任何变量,你必须初始化它的值,否则它将是一个垃圾值。在本例中,您只需在循环中声明int i,变量i将指向一些垃圾值。你可以通过在循环中初始化i = 0来解决这个问题。

代码语言:javascript
复制
int main()
{
    Machine enig;

    for(int i = 0; i < 26; i++)
    {
        cout << enig.rotor1.assignedRotor[i] << endl;
    };

    return 0;

}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67167001

复制
相关文章

相似问题

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