我在以下代码中遇到存储字符的问题。 它已编译但未将第2,第4,第6 ......字符作为输入。
struct ll {
char data;
struct ll *next;
};
以下是创建链接列表的代码。
struct ll* create_ll(struct ll *start){
struct ll *p1,*p2;
char a;
printf("Enter q to stop\n");
printf("Enter data:");
scanf("%c",&a);
while(a != 'q'){
p1 = (struct ll*)malloc(sizeof(struct ll*));
p1 -> data = a;
if(start == NULL){
start = p1;
p2 = p1;
p1 -> next = NULL;
}
else{
p2 -> next = p1;
p1 -> next = NULL;
p2 = p1;
}
printf("Enter data:");
scanf("%c",&a);;
}
return start;
}
答案 0 :(得分:1)
更改
scanf("%c",&a);
到
scanf(" %c",&a);
// ^ Space here
您的scanf正在以<{1}}字符
的形式读取输入键你可能已经看过了,因为我怀疑程序每次输出\n
两次。