Форум программистов, компьютерный форум CyberForum.ru

Для каждой строки файла удалить короткое слово - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Динамические массивы http://www.cyberforum.ru/cpp-beginners/thread1058133.html
Помогите пожалуйста решить. Только матрицы надо обязательно через динамические массивы задавать( я ничего в этом не понимаю(
C++ Вычислить значение y= (tgx-cos(x-ln2,51))/(x*x+3) по заданному значению x Здравствуйте, уважаемые пользователи. Помогите пожалуйста написать код от начала и до конца для данного задания: Вычислить значение y по заданному значению x, если y= (tgx-cos(x-ln2,51))/(x*x+3). http://www.cyberforum.ru/cpp-beginners/thread1058128.html
Массивы. Найти ошибку C++
#include <iostream> #include <cmath> using namespace std; int main() { int nArg; double summ = 0; cout << "kol-vo elementov massiva: "; cin >> nArg; double nArray;
C++ Алгоритмы и программы циклических структур
ПОМОГИТЕ С ЗАДАЧАМИ,ПОЖАЛУЙСТА 1.Для заданного M получить таблицу первых M простых чисел 2.Численно убедится в спораведливости равенства,для чего для заданного значения аргумента x вычислить девую часть и разложение, стоящее в правой части, с заданной погрешностью e .Оценить скорость сходимости,для чего вывести число инетраций n (слагаемых и множителей), необходимых для достижения заданной...
C++ Файлы. Класс "Автомобиль" http://www.cyberforum.ru/cpp-beginners/thread1058091.html
1. Используя ввод-вывод создать файл и записать в него структурированные данные. 2. Вывести созданный файл на экран. 3. Удалить из файла данные в соответствии с вариантом. 4. Добавить в файл данные в соответствии с вариантом. 5. Вывести измененный файл на экран. Класс "Автомобиль": -марка; -год выпуска; -цена;
C++ С ++ (массивы, матрицы) Прошу помощи в написании алгоритмов(псевдокод) для решения данных задач.:help: подробнее

Показать сообщение отдельно
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
27.12.2013, 00:04     Для каждой строки файла удалить короткое слово
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
#include <fstream>
#include <string>
#include <list>
#include <sstream>
#include <iterator>
#include <algorithm>
#include <cctype>
 
void saveFromIO(std::istream& in, std::list<std::string>& list)
{
    std::string line;
 
    while (std::getline(in, line))
    {
        list.push_back(line);
    }
}
 
void saveToIO(std::ostream& out, const std::list<std::string>& list)
{
    std::list<std::string>::const_iterator start = list.begin();
    std::list<std::string>::const_iterator end = list.end();
 
    while (start != end)
    {
        out << *start++ << '\n';
    }
}
 
bool isMin(const std::string& left, const std::string& right)
{
    return left.size() < right.size();
}
 
void removeSmaller(std::string& line)
{
    std::stringstream str(line);
    std::istream_iterator<std::string> beg(str), end;
    std::list<std::string> words(beg, end);
    std::string min_word = *min_element(words.begin(), words.end(), isMin);
    size_t offset = line.find(min_word);
 
    std::string::iterator ii;
    do
    {
        ii = line.begin();
        std::advance(ii, offset);
        line.erase(ii);
    } while (isalnum(*ii));
}
 
int main()
{
    std::ifstream in("text.txt");
    std::ofstream out("text_out.txt");
 
    if (!in || !out)
    {
        return -1;
    }
 
    std::list<std::string> file;
    saveFromIO(in, file);
 
    std::list<std::string>::iterator iter_beg = file.begin(), iter_end = file.end();
    while (iter_beg != iter_end)
    {
        removeSmaller(*iter_beg++);
    }
 
    saveToIO(out, file);
 
    std::cout << "Done!" << std::endl;
}
 
Текущее время: 09:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru