如何清空输入流

时间:2023-02-24 20:46:20
	while (scanf("%f%f",&x,&y))
{
scanf("%s",name);
p = (City *)malloc(sizeof(City));
if (p == NULL)
{
printf("分配内存失败\n");
exit(1);
}
p->cityX = x;
p->cityY = y;
strcpy(p->cityName, name);
    r->next = p;
p->next = NULL;
r = p;
}
fflush(stdin);


当程序输入的不是浮点数的时候,跳出循环,那些数据是否还留着输入流中?
我用fflush(stdin)后,还是不能解决,在我输入其它内容之前,程序就跳过那一段过程了?

4 个解决方案

#1


        if (p == NULL)
        {
            printf("分配内存失败\n");
            exit(-1);//试试-1
        }

#2


引用 1 楼 zhutou100hao 的回复:
C/C++ code
        if (p == NULL)
        {
            printf("分配内存失败\n");
            exit(-1);//试试-1
        }

不行

#3


有人帮帮忙吗

#4


记得以前看到哪里写道 
 fflush(stdin)
并不是很好用。。。。。

#1


        if (p == NULL)
        {
            printf("分配内存失败\n");
            exit(-1);//试试-1
        }

#2


引用 1 楼 zhutou100hao 的回复:
C/C++ code
        if (p == NULL)
        {
            printf("分配内存失败\n");
            exit(-1);//试试-1
        }

不行

#3


有人帮帮忙吗

#4


记得以前看到哪里写道 
 fflush(stdin)
并不是很好用。。。。。