我无法输入我的“详细信息”,因为它没有给我留下任何空间。
int addTask(NODE **head){
//IGNORE NODES
NODE *p, *temp, *ptr, *a;
DATE d;
p = *head;
a = *head;
char x[32];
char y[32];
char name[32];
char details[128];
int month;
int day;
int year;
int priority;
int intDate;
int i;
printf("\n");
printf("Enter task name: ");
scanf("%s", name);
printf("Enter task details:");
fgets(details, 128, stdin); //PROBLEM LIES HERE
printf("[mm dd yyyy] Enter task deadline: ");
scanf("%d %d %d", &month, &day, &year);
printf("Enter priority: ");
scanf("%d", &priority);
/*code conditions here*/
}
在我的终端中,结果是这样的:
User@Lynn /cygdrive/c/users/user/academic/c
$ gcc -o a Yago_exer11.c
User@Lynn /cygdrive/c/users/user/academic/c
$ ./a
1. Add a task
2. Remove a task
3. Search for a task
4. View all tasks
5. View tasks by priority
6. Exit
Choice: 1
Enter task name: hello
Enter task details:[mm dd yyyy] Enter task deadline: 09 09 09 //PROBLEM
Enter priority: 1
Adding...
我尝试使用 scanf(%^[\n]) 作为替代方案,但结果证明具有相同的输出。有人可以告诉我我的代码有什么问题吗?
最佳答案
尝试将 getchar(); 放在 scanf("%s", name);
之后关于c - 为什么我的fgets方法变成这样了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33692584/