请问在使用循环向数组对应元素输入字符时,这个do while循环可以用while替换吗?我尝试替换但是一直没有跳出循环,不知道是不是我修改的有问题。刚刚开始学习C语言,想过是不是换行符在输入队列的原因,但是一知半解实在不知道怎么回事,如果可以替换,正确的程序是什么样的呢,希望有朋友为我解答一下,特别感谢!
#include <stdio.h>
#define SIZE 255
int main() {
char ch[SIZE];
int i = 0;
printf("请输入一行字符:\n");
while (i < SIZE && scanf("%c", &ch[i]) == 1 && ch[i] != '\n')
i++;
ch[i] = '\0';
printf("该行字符倒序打印为:\n");
for (i--; i >= 0; i--)
printf("%c", ch[i]);
printf("\n");
return 0;
}
scanf
读不到换行符,改成使用getchar
即scanf("%c", &ch[i])
改成ch[i] = getchar()