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

Вывести на экран содержимое файла с программой на С - C++

Восстановить пароль Регистрация
 
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
01.11.2011, 17:59     Вывести на экран содержимое файла с программой на С #1
Вывести на экран содержимое файла с программой на С, подсвечивая
другим цветом все вещественные константы. ( и если можно закомментить всё)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2011, 17:59     Вывести на экран содержимое файла с программой на С
Посмотрите здесь:

C++ Вывести на экран содержимое файла с программой на С, подсвечива другим цветом все восьмеричные константы.
C++ Вывести на экран содержимое файла с программой на С, подсвечивая другим цветом ключевые слова.
C++ Бинарные файлы ( Вывести на экран содержимое каждого файла)
Вывести содержимое файла на экран! C++
что не такс програмкой?я хочу вывести содержимое файла на экран? C++
Как вывести содержимое файла на экран C++
C++ Вывести содержимое файла на экран
Вывести содержимое файла на экран в соответствии с заданным форматом C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
01.11.2011, 20:01     Вывести на экран содержимое файла с программой на С #2
В Unix-терминалах существует возможность подсвечивать вывод программ с помощью управляющих escape-последовательностей.
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#include <iostream>
#include <string>
#include <boost/regex.hpp>
#include <sstream>
#include <fstream>
 
template <class T>
std::string to_string(const T& v)
{
    std::ostringstream oss;
    oss << v;
    return oss.str();
}
 
enum font_type
{
    PLAIN = 0,
    BOLD = 1,
    UNDERLINED = 4,
    BLINK = 5
};
 
enum color
{
    RESET = 0,
    BLACK = 30,
    RED = 31,
    GREEN = 32,
    YELLOW = 33,
    BLUE = 34,
    PINK = 35,
    TURQUOISE = 36,
    WHITE = 37
};
    
class font
{
public:
    font();
    font(font_type, color, color);
    font(const font&);
    
    std::string to_str() const;
    
private:
    font_type f_t;
    color fg, bg;
};
 
font::font()
    : f_t(PLAIN), fg(RESET), bg(RESET)
{
}
 
font::font(font_type t, color f, color b)
    : f_t(t), fg(f), bg(b)
{
}
 
font::font(const font& rhs)
    : f_t(rhs.f_t), fg(rhs.fg), bg(rhs.bg)
{
}
 
std::string font::to_str() const
{
    std::string result("\e[");
    result += to_string(f_t);
    if(fg != RESET && bg != RESET)
    result += std::string(";") + to_string(fg) + std::string(";") +
        to_string(bg + 10);
 
    result += std::string("m");
    
    return result;
}
 
class colorizer
{
public:
    colorizer(const font&, const font&);
    std::string colorize(const std::string&) const;
private:
    font begin, end;
};
 
colorizer::colorizer(const font& b, const font& e)
    : begin(b), end(e)
{
}
 
std::string colorizer::colorize(const std::string& str) const
{
    return begin.to_str() + str + end.to_str();
}
 
int main(int argc, char* argv[])
{
    std::ifstream ifs;
 
    try
    {
    if(argc != 2)
        throw std::runtime_error("Usage: colorize FILE");
    
    
    const font reset;
    const font red(PLAIN, RED, WHITE);
    const colorizer real_c(red, reset);
 
    const boost::regex rx(R"del(((\+|-)?\d+(\.\d*)?((e|E)(\+|-)?\d+)?))del");
        
    ifs.open(argv[1]);
 
    if(!ifs)
        throw std::runtime_error("Can't open file " + std::string(argv[1]));
        
    std::string line;
 
    while(std::getline(ifs, line))
    {
        std::string result = boost::regex_replace(line, rx, real_c.colorize("$&"),
                              boost::format_perl);
        std::cout << result << std::endl;
    }
 
    ifs.close();
    }
 
    catch(const std::exception& e)
    {
    std::cerr << e.what() << std::endl;
    
    return 1;
    }
    
    return 0;
}
Скрин:
Вывести на экран содержимое файла с программой на С
Естественно, для успешного запуска нужны Unix-like система и Boost
Yandex
Объявления
01.11.2011, 20:01     Вывести на экран содержимое файла с программой на С
Ответ Создать тему
Опции темы

Текущее время: 02:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru