我被要求修改一个程序来读取字符而不是数字。 我将数组修改为char数组。将两个“%d”更改为“%c”,如下所示
void main(void) {
char a[100];
int counter;
int b;
counter = 0;
printf("please enter the length of the array: ");
scanf("%d", &b );
while (counter != b)
{
printf("please enter character: ");
scanf("%c", &a[counter]);
counter++;
}
a[counter] = '\0' ;
counter = 0;
while (a[counter] != '\0')
{
printf("\n");
printf("%c",a[counter]);
counter++;
}
}
请输入数组的长度:(4)
请输入字符:请输入字符:(a)
请输入字符:请输入字符:(a)
一
一
()用于指示用户输入。
如果我能得到一些帮助,那将是非常好的。答案 0 :(得分:2)
你必须记住scanf
将换行符保留在输入缓冲区中,所以当你尝试读取一个字符时,它就会换行。
解决方案非常简单:通过在格式代码中添加空格,告诉scanf
读取并丢弃前导空格:
scanf(" %c", &a[counter]);
/* ^ */
/* | */
/* Note space here */