关于EOF的问题:多次输入后没有输出

#include<iostream>
using namespace std;

char arr[5];

int main(){
    int a,b,T;
    scanf("%d",&T);
    while(scanf("%s %d %d",arr,&a,&b)!=EOF){
        if(a < 15 && a > 20)
            printf("%s\n",arr);
        if(b < 50 && b > 70)
            printf("%s\n",arr);
    }
    return 0;
}

这是源代码,想问问为什么输入完成后没有输出?

不知道你要做什么if(a < 15 && a > 20)这样判断一个a值是讲不通的!什么样的一个值既小于15并且又大于20?。
 

	char arr[5]; int a, b, T;
	while (scanf_s("%d %d", &a, &b) != EOF)
	{
		cin>> arr;
		if (a < 15 && b > 20)
			printf("%s\n", arr);
	}