Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 09.09.2015
Сообщений: 1
1

Удалить все теги , кроме тега <a .>.</a> со страницы html. Результат вывести на экран

09.09.2015, 15:56. Показов 1225. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте , мне нужно выполнить следующее задание :
Дан текст HTML-страницы (скачать по ссылке http://its.alnam.ru/kurs_11.txt).
Нужно оставить из всех тегов только тег <a>...</a> вывести его на экран.

Вот мой код :
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
#include "stdafx.h"
#include <fstream>
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus"); 
    char buff[100], s[10000], end[8]="</html>", a[3]="<a", a2[4]="</a"; 
    int i = 0, k = 0;
    ifstream fin("kurs.txt");
 
    while(i != 1){
        for(int j=0;buff[j] != 0;j++){ 
            if(strcmp(buff, end))
                i++;
            if(strchr(a, buff[j])){
                do{
                cout << buff;
                fin >> buff;
                if(strchr(a, buff[j]))
                    k++;
                }while(k == 0);
            }
        }
        fin >> buff;
    }
    fin.close(); // закрываем файл
 
    system("pause");
    return 0;
}
Он совсем не рабочий , не понимаю , как нужно правильно считывать данные с файла и как мне определить с какого именно момента стоит выводить на экран и когда остановиться. Подскажите как реализовать это , способы или если можно напишите +- похожую задачку постараюсь разобраться на примере.

Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2015, 15:56
Ответы с готовыми решениями:

Как найти все теги, кроме тега в определенном блоке?
Всем привет. В общем только начал изучать jquery и возникла проблема. Как можно найте все теги img...

Удалить все теги кроме '<br />'
Доброго времени суток. В общем нужно прочитать файл формата .docx (знаю что в нем нужен файл...

В предложении удалить все вхождения “th”. Результат вывести на экран
Очень прошу помогите сделать,знаю она лёгкая,но сам не успеваю не чего((( 6. В предложении...

Удалить все комментарии и теги из HTML файла
Есть задание: Написать сценарий для sed и awk для удаления тегов и комментариев HTML. Теги и...

3
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
09.09.2015, 19:56 2
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
#include <iostream>
#include <fstream>
#include <string>
    
 
void remove_tag(std::ostream& _out, std::istream& _in, const char* tag){
    char buf[512];
    std::string s;
    std::string ft, lt;
 
    ft  = '<';
    ft += tag;
 
    lt  = "</";
    lt += tag;
 
    while(! _in.eof() && ! _in.fail()){
        _in.read(buf, sizeof(buf) - 1);
        if(_in.gcount() > 0){
            buf[_in.gcount()] = '\0';
            s += buf;
        }
    }
    
    std::string::size_type l, f = 0;
    while((f = s.find(ft, f)) != std::string::npos){
        l = s.find(lt, f + ft.length());
        if(l != std::string::npos)
            s.erase(f, (l + lt.length()) - f + 1);
        else
            break;
    }
    _out << s;
    _out.flush();
}
 
 
 
int main(void) {
    std::ifstream fp("file.txt");
    remove_tag(std::cout, fp, "script");
    fp.close();
/*
    std::ifstream fin("input.txt");
    std::ofstream fout("output.txt");
    remove_tag(fout, fin, "script");
    fout.close();
    fin.close();
*/
    return 0;
}
1
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
09.09.2015, 20:03 3
Только захватывает кусок, где <a> присутствует в сценарии.
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
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
#include <regex>
#include <locale>
#include <algorithm>
 
int main()
 
    std::locale::global(std::locale(""));
    std::string s, txt, res;
 
    std::ifstream ifs("data.txt");
 
    while (!ifs.eof())
    {
        std::getline(ifs, s);
        txt += s + '\0';
    }
 
    std::ofstream ofs("data1.txt");
 
    std::regex r("(<a\\s+[^>]+>.*?<\\/a>)");
    std::smatch m;
 
    while (std::regex_search(txt, m, r))
    {
        std::cout << m[1] << std::endl;
        res += m[1];
        res += '\n';
        txt = m.suffix().str();
    }
 
    std::for_each(res.begin(), res.end(), [](char &c){ if (c == '\0') c = '\n'; });
    ofs << res;
 
    ifs.close();
    ofs.close();
 
    system("pause");
    return 0;
}
1
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
09.09.2015, 22:35 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <iterator>
#include <fstream>
#include <string>
#define BOOST_NO_AUTO_PTR
#include <boost/algorithm/string/regex.hpp>
 
int main()
{
    std::ifstream ifs{"kurs_11.txt"};
    std::string text {std::istreambuf_iterator<char>(ifs), {}};
    
    std::vector<std::string> results;
    boost::find_all_regex(results, text, boost::regex(R"(<(a).*?>*?</\1>)"));
    for (std::string &str : results) std::cout << str << "\n\n\n";
}
1
09.09.2015, 22:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.09.2015, 22:35
Помогаю со студенческими работами здесь

Ввести строку символов. Удалить из строки все символы, не являющиеся цифрами. Результат вывести на экран.
Задача 1. Ввести строку символов. Удалить из строки все символы, не являющиеся цифрами. Результат...

Строка: удалить все html теги из входной строки
написал вот такой код using namespace std; int main() { string str = &quot;&lt;strong&gt;text...

Как удалить все теги img из html кода?
Ребят подскажите как удалить все теги img их html кода.

Работа с текстом. Необходимо удалить все HTML теги
Есть текст, но в нем очень не удобно расположены html теги. Если возможность удалить эти теги и...

Удалить все промежуточные теги, кроме открывающего <urlset> и закрывающего </urlset> (shell)
Подскажите кто сможет плиз. Есть файл 19 метров. в нём куча тегов &lt;urlset.........&gt; и &lt;/urlset&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru