Wznów czytanie z iostream :: cin po Ctrl + Z (EOF)? („Ignoruj” nie działa)

Dlaczego zewnętrzna pętla w poniższym programie kończy się, gdy udostępniamy ctrl + z tylko dla wewnętrznej pętli?

#include<iostream>
int main()
{
    string s1,s2;

    while(cin >> s1)
    {
        cout<<"In loop1\n";
        while(cin>>s2)
            cout<<"In loop 2\n";
        cin.ignore();
    }
}