Не происходит считывание с файла язык C++

При первом цикле считывание происходит без проблем, после проверки if (s != '\n') запускается следующий цикл, но в нем уже чтение не продолжается. Какой последний символ был считан в первом цикле, такой и остался. Подскажите пожалуйста, почему так происходит и как это можно исправить))

bool InpM(const char* name_in, int& pos, StrL& M)
{

    char s;
    ifstream f_in;

    f_in.open(name_in, ios::in);

    if (!(f_in.is_open())) std::cout << "Ошибка открытия входного файла!";
    else
    {
        f_in.unsetf(ios::skipws);
        f_in.seekg(pos);
        unsigned i = 0;

        if (f_in.eof()) return 0;
        else
        {
            while (1)
            {
                f_in >> s;
                if (s == '\n') break;
                if (f_in.eof())
                {
                    M.L = i;
                    return 0;
                }
                else
                {
                    M.A[i] = s;
                    i++;
                    if (i >= ver)break;
                }
            }
            if (s != '\n')
            {
                while (s != '\n' && !f_in.eof())
                {
                    f_in >> s;
                }
            }
            M.L = i;
            pos = f_in.tellg();
            f_in.clear();
            return 1;
        }
    }
    f_in.close();
}

Ответы (0 шт):