Предмет: Информатика, автор: AlexTarakanova

Дано текстовый файл f. Переписать в файл g строки файла f, которые содержат более 5 слов. С++


GURU921: Что служит разделителями слов в строке?
GURU921: Т.е пробелы, точки, запятые? или какие то свои
AlexTarakanova: В задании не было указано, значит, стандартно - пробелы

Ответы

Автор ответа: GURU921
1
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main(){
setlocale(LC_ALL, "Russian");
ifstream in_file("f.txt"); // файл со строками
ofstream out_file("g.txt"); // файл со строками, длиннее 5 слов.
string buffer; // промежуточная переменная, для хранения проверяемой строки 
int count; // счетчик слов в строке
while (getline(in_file, buffer))
{
count = 0;
for (unsigned int i = 0; i < buffer.length(); i++)
{
if (buffer[i + 1] == ' ' || buffer[i+1] == '\0')
{
   count++;
}
}
cout << "Количество слов в строке: "<< count << endl;
if(count > 5)
{
out_file << buffer << endl;
}
buffer.clear();
}
in_file.close();
out_file.close();
return 0;
}

Писал в visual c++ , советую там и проверять. Все слова разделяют одним пробелом и заканчивается строка словом, без пробела после него, ибо это уже неверно будет

GURU921: Так стоп, криво код залился
AlexTarakanova: Да не страшно, это я уже исправлю, большое Вам спасибо с:
GURU921: Уже подправил) и в одном месте, точнее в цикле for прога делала замечание некритичное, тоже исправил сейчас) Удачи в познании си)
AlexTarakanova: Ух, спасибо) И всего хорошего Вам!
Похожие вопросы
Предмет: География, автор: ЭЗМ