如遇到while(1)停不下来,可使用以下方法:

if(!(cin>>t)) 
        {
        if(cin.eof()) 
        {
            break;
        }
        }

这段代码的意思是尝试从输入流中读取一个值到变量t。如果成功,cin>>t会返回cin对象,它在布尔上下文中被视为true。否则,如果读取失败(例如,因为输入流已经到达了末尾,或者输入的值不能转换为double类型),cin>>t会返回false。

if(!(cin>>t))这行代码就是在检查是否成功地从输入流中读取了一个值。如果没有成功(也就是cin>>t返回了false),那么就会执行花括号中的代码。

cin.eof()是一个函数,用来检查输入流是否已经到达了末尾。如果已经到达末尾,那么cin.eof()会返回true,否则返回false。

所以,if(cin.eof())这行代码就是在检查输入流是否已经到达了末尾。如果已经到达末尾,那么就执行break;语句,跳出循环。

总的来说,这段代码的意思是:尝试从输入流中读取一个值到t,如果读取失败并且输入流已经到达末尾,那么就跳出循环。