ctrl-z を使用して EOF または EOT を通知することは一般的に時代遅れであり、推奨されないことを理解していますが、フードの下で何が起こっているのか興味があります。
C++ で次のようなものがあるとします。
#include <iostream>
#include <string>
int main() {
while (!cin.eof()) {
string str;
getline(cin, str);
}
cout << "out of while" << endl;
return 0;
}
abc[^Z][改行] を実行しても、プログラムは実行されます。abc[^D][改行] も同様です。
しかし、純粋に [^Z][改行] を含む行を入力すると、プログラムは正しく存在します。
OS固有の可能性が高いことは理解していますが、そこで何が起こっているのか興味があります。