程序在执行scanf("%c", &ch)语句时没有停止,为什么会这样发生?有人可以给我解释一下吗?
#include<stdlib.h>
#include<stdio.h>
struct list {
char val;
struct list * next;
};
typedef struct list item;
void main()
{
char ch;
int num;
printf("Enter [1] if you want to use linked list or [2] for realloc\n");
scanf("%d", &num);
if(num == 2)
{
scanf("%c", &ch);
printf("%c", ch);
}
}
scanf
的几乎所有其他格式说明符都会剥离前导空格,但%c
是个例外。你必须非常小心地对待它。 - Andon M. Coleman