c - 为什么我的fgets方法变成这样了?

标签 c string input fgets

我无法输入我的“详细信息”,因为它没有给我留下任何空间。

   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/

相关文章:

c - 使用 pcap 库检测 eap 数据包(802.1X 身份验证)

c - 什么是 C 中的 vuint,为什么它在我的微 Controller 中?

c - 方程双指针指向 NULL 在 C 中给出段错误

javascript - 如何以字符串形式返回所有输入的新数组?

ruby - 如何获取字符串中可用键的所有组合

Android Chrome 禁用搜索输入表单上的自动建议

c - 在 Linux 内核函数中的缓冲区中查找子字符串

c# - 输入字符串的格式不正确

jQuery:用户开始输入后更改输入值颜色

javascript - 如何使用 jQuery 选择动态创建的元素