提问人:mathisfun1234 提问时间:11/15/2020 更新时间:11/15/2020 访问量:119
使用 scanf 直到 EOF 将值插入节点
Using scanf until EOF to insert values into nodes
问:
我想从scanf获取用户输入,然后将这些整数保存到节点中(并将节点链接到链表上)。用户可以输入整数,直到他们按 ctrl+d。
这是我目前拥有的,但是一旦用户点击 ctrl+d,我的程序就会无限打印“enter int values:”。我不确定我做错了什么,因为一旦 x == EOF,它应该会跳出循环。
我该何去何从?
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node *next;
};
void insertNode(struct Node **startRef, int data);
void insertNode(struct Node **startRef, int data){
struct Node *ptr1 = (struct Node*)malloc(sizeof(struct Node));
ptr1->data = data;
ptr1->next = *startRef;
*startRef = ptr1;
}
int main(){
int vals;
struct node *start = NULL;
for(;;){
int x = &vals;
if(x==EOF){
break;
}
else{
printf("enter int values: ");
scanf("%d", vals);
insertNode(&start,vals);
}
}
}
答: 暂无答案
评论
&
scanf("%d", &vals);
int x = &vals;
EOF
int
int vals; ... scanf("%d", vals);
scanf()
while (scanf("%d", &vals) == 1) insertNode(&start, vals);
while (printf("enter an integer: ") > 0 && scanf("%d", &vals) == 1)
printf()
printf()
printf()
scanf()
scanf()