C ++数组显示字母和数字?

时间:2015-09-08 19:20:49

标签: c++ arrays

我正在开发一个彩票应用程序,其中计算机生成5个随机数并将它们存储到下标中。出于某种原因,我的数组在我的代码中输出字母和数字。任何人都可以告诉我为什么会发生这种情况?

#include <iostream>
#include <iomanip>
#include <random>
#include <ctime>
#include <time.h>

using namespace std;

int main(){
const int digits = 5;
int winningDigits[digits];



 srand(time(0));

winningDigits[0] = rand() % 10 + 1;
winningDigits[1] = rand() % 10 + 1;
winningDigits[2] = rand() % 10 + 1;
winningDigits[3] = rand() % 10 + 1;
winningDigits[4] = rand() % 10 + 1;

cout << winningDigits;

2 个答案:

答案 0 :(得分:3)

cout << winningDigits;

是打印数组的地址而不是数组的内容。您看到字母和数字的原因是地址显示在hexidecimal

您可以使用ranged based for loop打印数组:

for (const auto& e : winningDigits)
    cout << e << " ";

答案 1 :(得分:0)

要显示阵列,您可以使用:

for (int i = 0; i < digits; i++)
        cout << winningDigits[i];

cout&lt;&lt; winningDigits;不访问您的数组的每个成员。它为您提供了地址。

您还可以通过将所有内容放入for循环来简化程序:

for (int i = 0; i < digits; i++)
{
    winningDigits[i] = rand() % 10 + 1;
    cout << winningDigits[i] << " ";
}