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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Управление курсором в консоли http://www.cyberforum.ru/cpp-beginners/thread1490830.html
Всем привет. Интересует вопрос: можно ли управлять курсором в консоли, то есть управлять положением вывода или ввода информации, с помощью ассемблера?
C++ Чтение текста из файла [VC++] Здравствуйте, уважаемые знатоки) С толкнулся с проблемой чтения текста из файла (вроде бы задача легкая), но я буквально недавно начал изучать С++ (так как паскаль (аля делфи) порядком надоел своей загруженностью). Вот... вообщем... задача Прочитать все строки из файла proxy.txt (более 1500 строк) (приложил файл к вопросу) Вот, методом проб и ошибок написал код, но я явно вижу что код... http://www.cyberforum.ru/cpp-beginners/thread1490828.html
Калькулятор: обратная польская запись C++
Всем доброго времени суток! Решил написать для себя калькулятор, который бы решал сложные выражения с учетом скобок, каких-либо функций и т.д. В дальнейшем хотел прикрутить свой класс больших чисел, но до этого пока не дошел, так как наткнулся на ошибку, которая возникает при обработке скобок. Самое интересно, что в некоторых случаях, все работает корректно. Важно: если будете тестировать, то...
C++ Как сделать двумерный массив
Доброго времени суток. Допустим с клавиатуры вводятся 25 значений. Как их записать в двумерный массив(чтоб матрица образовалась?. Помогите пожалуйста!
C++ Как реализовать ввод данных в матрицу? http://www.cyberforum.ru/cpp-beginners/thread1490790.html
Дана матрица 5*4. Как сделать,что если пользователь допустим ввёл 16 значений остальные дополнить как "ооооо".?
C++ CodeVS для linux наверняка тему я написал не там где надо, но всё же скачать codevs для linux, разархивировал и дальше написано запустить исполняемый файл Code, но он не запускается. помогите, как мне быть подробнее

Показать сообщение отдельно
Геомеханик
 Аватар для Геомеханик
517 / 324 / 253
Регистрация: 26.06.2015
Сообщений: 738
01.07.2015, 15:02     В каждой строке файла удалить среднее слово
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
76
77
78
79
80
81
82
83
#include <iostream>
#include <fstream>
#include <strstream>
#include <cctype>
#include <string>
 
 
//кол-во слов в строке
int count_words(const char* s){
    int n = 0;
    while(*s){
        while(*s && ! isalnum(*s))
            ++s;
        if(isalnum(*s)){
            ++n;
            while(isalnum(*s))
                ++s;
        }
    }
    return n;
}
 
//удаление слова
void remove_avg(std::string& s){
    int inx;
    int cnt = count_words(s.c_str());
    if(cnt <= 2)
        return;
 
    cnt = (cnt + 2) / 3;
    inx = 0;
 
    const char* i, *p = s.c_str();
    while(*p){
        while(*p && ! isalnum(*p))
            ++p;
 
        if(isalnum(*p)){
            i = p + 1;
            while(isalnum(*i))
                ++i;
 
            if(inx++ >= cnt){
                s.erase((p - s.c_str()), i - p);
                break;
            }
            p = i;
        }
    }
}
 
 
//удаление среднего слова
void output_rem(std::ostream& _o, std::istream& _i){
    std::string l;
    while((! _i.eof()) && (! _i.fail())){
        std::getline(_i, l);
        if(l.length() > 0){
            remove_avg(l);
            _o << l << std::endl;
        } else
            _o << std::endl;
    }
    _o.flush();
}
 
 
int main(void){
    char s[] = "fox dog bat cat wolf bea cow\r\n"\
               "AA BB CC DD EE FF\r\n"\
               "A1 B2 C3 D4 C5";
    std::istrstream ist(s);
    output_rem(std::cout, ist);
 
/*  вот работать с файлом
    std::ifstream fin("input.txt");
    std::ofstream fout("output.txt");
    output_rem(fout, fin);
    fin.close();
    fout.close();
*/
    return 0;
}
Результат работы кода
 
Текущее время: 11:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru