为什么是死循环,就是输入一直不结束


#include<iostream>
using namespace std;
int main()
{
    char str[50];
    int n  = 0, j;
    do
    {
        n++;
        cin >> str[n];

    } while (str[n] !=EOF);
    int flag = 1;
    for (int i = 0, j = n - 2; i < j; i++, j--)
    {
        if (str[i] == str[j])
        {
            flag = 1;
        }
        else {
            flag = 0;
            break;
        }
    }
    if (flag==1)
    {
        cout << "Yes" << endl;
    }
    else cout << "No" << endl;
    return 0;
}

如果你想读取一串不含空格的字符可以直接cin str然后再来数。或者用cin.get函数(字符串可以含有空格)。在这里,你得输入一个编码为-1的字符才会结束