【发布时间】:2016-12-12 21:40:55
【问题描述】:
我正在尝试从数组中打印一串字符,并在按下“Enter”键时结束循环。
int i;
char charArry[MAXARY];
printf("Input an array of chars: \n\n");
for (i = 0; i < MAXARY && charArry[i] != 13; i++)
{
scanf(" %c", &charArry[i]);
}
for (i = 0; i < MAXARY; i++)
{
printf(" %c", charArry[i]);
}
由于某种原因,每当我按 Enter 键时,它都会转到新行而不是中断循环。有什么建议吗?
附言 MAXARY 是数组长度的常数,目前为 20。
【问题讨论】:
-
请勿使用
scanf进行用户输入。 -
你只是在读取
charArry的未初始化值 -
charArry[i]永远不会是 13 ('\r') 给定" %c"。可以使用"%c",但这会导致其他问题。通常“enter”被翻译成'\n',但同样的问题。 -
仍然会因为 OP 尝试对这个进行 UV 测试以进行重要的代码测试:防止
i < MAXARY溢出。 -
@melpomene - 这是一个朋友的学校作业,他必须使用 scanf