Дано текстовый файл f. Переписать в файл g строки файла f, которые содержат более 5 слов. С++
Answers & Comments
GURU921
#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++ , советую там и проверять. Все слова разделяют одним пробелом и заканчивается строка словом, без пробела после него, ибо это уже неверно будет
Answers & Comments
#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++ , советую там и проверять. Все слова разделяют одним пробелом и заканчивается строка словом, без пробела после него, ибо это уже неверно будет