为什么在输入点1输入的字符串,会自动转入输入点2的字符数组中(而不需要在输入点2处重新输入)?

#include<stdio.h>

void main()
{

    int j,status;    
    
    char kaka[5];

    printf("lets begin\n");


    status = scanf("%d",&j);//输入点1

    if (status != 1)
    {
        printf("test 1111111111111 here \n");
    
        scanf("%4s",kaka);    //输入点2
    

        printf("test %d \n",j);
        printf("%s",kaka);
    }
    else
    {
        printf("test %d \n",j);
    }
    
}

因为有缓存,在第二个输入之前加一条清除缓存的语句就可以了,fflush(stdin);

参考:https://edu.csdn.net/course/detail/2766

因为你在输入完 j 的值的时候,输入的会车或者空格被输入点2给读取到了,所以你可以在输入点1和输入点2之间加一个 getchar() 将这个字符给吃掉就好了

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632