Не работает вывод в файл c++
В программе беру строку из одного файла, удаляю самые длинные слова в ней и пишу во второй файл.
Не выходит т.к. вылетает ошибка out_of_range
.
Не понимаю в чем проблема, строка не пустая, файл открыт (как я это понял - при запуске скрипта при изначальном состоянии файла все работает).
Изначально писал туда три строчки:
У попа была собака он ее любил
Она съела кусок мяса
Он ее убил.
Но когда меняю текст на другой, скрипт не работает с этой ошибкой.
ifstream fout;
fout.open("F1.txt");
fstream fin;
fin.open("F2.txt");
const int lenght = 200;
char str[lenght], str_2[lenght], line_delimiter = '\0';
int i = 0, count = 0, word_lenght = 0, word_position = 0;
string line, word;
cout << "Прочитаем текст в файле\n";
while (fout.getline(str, lenght)) {
cout << str << endl;
count = 0;
word_lenght = 0;
line = "";
for (i = 0; str[i] != line_delimiter; i++) {
if (str[i] != ' ') {
count++;
}else {
count = 0;
}
if (word_lenght < count) {
word_position = i - count;
word_lenght = count;
line = str;
}
word = str[i];
}
if (!line.empty()) {
line.erase(word_position, word_lenght + 1);
if (fin.is_open())
{
fin << line << "\n";
}
}
}
cout << "\nУдалим самые длинные слова в строках\n";
while (fin.getline(str_2, lenght)) {
cout << str_2 << endl;
}