显示数组元素时出错

时间:2016-07-19 10:11:21

标签: c++ arrays

int path[10]={'_', '_', '_', '_', '_', '_', '_', '_', '_', '_'};
for (int b=0;b<=9;b++) {
     cout << path[b];
}

当我尝试运行它以显示水平线时,它只显示了很多9和5。但是,如果我运行这个

for (int b=0;b<=9;b++) {
     cout << '_';
}

似乎做了这项工作。我知道我可以使用第二批代码,但我需要使用数组显示它。

2 个答案:

答案 0 :(得分:3)

pathint的数组,当您打印出其元素时,int值(即95的ascii代码'_')将是打印出来。如果您希望将其打印为char,则应从

更改声明
int path[10]={'_', '_', '_', '_', '_', '_', '_', '_', '_', '_'};

char path[10]={'_', '_', '_', '_', '_', '_', '_', '_', '_', '_'};

答案 1 :(得分:1)

在第一个示例中,您将path声明为int的数组,它由std::cout解释为类似于int(_的ASCII代码为95)。要使其工作,您需要将声明更改为:

int path[10]={'_', '_', '_', '_', '_', '_', '_', '_', '_', '_'};

在第二个示例中,您将'_'输出到std::cout,这是char类型,并按预期显示。