Нужна помощь с функцией gcount()

Собственно проблема заключается в том,что gcount() считает также и символ новой строки из потока судя по всему.А если в файле кириллица вместо латиницы,то выдает результат в 2 раза больше +1 ,чем есть на самом деле.

#include <fstream>
#include <iostream>


using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");
ifstream srt;
const int strings{ 5 }, len{ 200 };
char buffer[len][strings]{};
const char newline{ '\n' };
const int cnt{ 30 };
srt.open("trr.txt");
for (int i = 0; i < strings; ++i)
{
    srt.getline(buffer[i], len - 1, newline);
    if (srt.gcount() < cnt)
    {
        cout << buffer[i] << '\n';
    }
    else
        cout << "Строка № " << 1+i << " содержит " << srt.gcount() << " символов и не будет выведена."<<'\n';
}
srt.close();

return 0;

}

EDIT Более работоспособный вариант.


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