Ваш цикл while выглядит нормально,
, но уверены ли вы в следующей строке?
if(t[num].data == s)
cout<<"("<<s<<")"<<" appears "<<t[num].count<<" times."<<endl;
не должно быть вместо этого?
if(t[temp].data == s)
cout<<"("<<s<<")"<<" appears "<<t[temp].count<<" times."<<endl;
Потому что, очевидно, вы запускаете всю таблицу до тех пор, пока цикл не будет завершен или пока вы не найдете хорошую [то есть: while ( t [temp] .data! = S ...)].Поэтому я думаю, что вы ищете хороший индекс temp , но вы не используете его после цикла while.