c++ - 数组c++中的随机数据丢失

标签 c++

这是我的问题....在下面的代码中,在 char guess[4]cin >> guess 我的 answer 之间索引 0 处的元素消失了。谁知道为什么?

while(bullCount != 4)
{
    //Create the answer
    char answer[4];

    for(int loops = 0; loops < 4; loops++)
    {
        answer[loops] = createAnswerDigit(seed);
    }

    //Reset bullCount and cowCount from previous loop
    bullCount = 0;
    cowCount = 0;

    cout << "Enter your guess [1000-9999]: ";

    //Guess by player
    char guess[4];

    cout << "Answer[0]: " << answer[0] << "\n"; //Prints "Answer[0]: 4

    //Retrieve guess by player
    cin >> guess;

    cout << "Answer[0]: " << answer[0] << "\n" //Prints "Answer[0]: "

    for(int digitLoc = 3; digitLoc >= 0; digitLoc--)
    {
        //Do check backwards to prevent mistaking bulls for cows
        int check = checkGuess(guess[digitLoc], digitLoc, answer);

        if(check == cow)
        {
            cowCount++;
        }

        else if(check == bull)
        {
            bullCount++;
        }
    }
}

最佳答案

guess 的大小为 4,但是,您输入了一个介于 1000 - 9999 之间的数字,即 4 > 字符长。请记住,在一个字符串中,字符串的末尾必须有一个\0,所以guess少了1个字符。这可能会覆盖 answer 的第一个元素。尝试让 guess 大小为 5,或者更好的是,改用 std::string

关于c++ - 数组c++中的随机数据丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31541652/

相关文章:

c++ - 小巧便携的网络浏览器库?

c++ - 我应该在包含虚方法的类上使用 'memcpy' 吗?如果不是,如何替换它?

c++ - 在给定范围内查找对值

c++ - 无法打印更多的 pi 小数

c++ - 如何在 C++ 中使用一个通用的友元函数?

c# - USB 中继 DLL 问题 - 继续

c++ - 在 C/C++ 中实现解释器所需的引用资料

c++ - pthread_create - 非静态成员函数的无效使用

c++ - 重载 map::key_comp 以便我可以在对象指针映射上使用 map::find

c++ - BFS中队列大小的重要性