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

удаление коментариев - C++

Восстановить пароль Регистрация
 
onegin88
4 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 19
30.03.2013, 11:22     удаление коментариев #1
Написать программу delete_comments, которая принимает на стандартный вход
программу на языке С++ и выводит в стандартный вывод текст этой программы,
удалив из него комментарии.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
30.03.2013, 12:46     удаление коментариев #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
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
    string str;
    ifstream in("source.cpp");
    bool f = false;
    size_t pos(0);
    while(!in.eof())
    {
        getline(in,str);
        if (pos = str.find("/*") != std::string::npos || f)
        {
            f = true;
            size_t _pos = str.size();
            if (_pos = str.find("*/") != std::string::npos)
                f = false;
            str.resize((pos = str.find("/*")) != std::string::npos ? pos : _pos);
        }
        else
        {
            str.resize((pos = str.find("//")) != std::string::npos ? pos : str.size());
            cout<<str<<'\n';
        }
    }
    system("pause");
    return 0;
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
30.03.2013, 13:24     удаление коментариев #3
BumerangSP, а такую комбинацию выловит?
C++
1
f(); // comment /* comment 2 */
А еще можно на свой же исходник натравить
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
30.03.2013, 13:25     удаление коментариев #4
BumerangSP, программа, содержащая строку like этой
C++
1
std::cout << "//";
будет обработана вашим кодом некорректно
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
01.04.2013, 01:43     удаление коментариев #5
Tulosba, неа, это очень простой пример, хотя замечание sandye51 упустил, это да.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
01.04.2013, 07:39     удаление коментариев #6
BumerangSP, замечание sandye51 это, по сути, мое второе предложение.
Yandex
Объявления
01.04.2013, 07:39     удаление коментариев
Ответ Создать тему
Опции темы

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