591 / 357 / 16
Регистрация: 06.02.2009
Сообщений: 1,386
|
|
1 | |
Удаление комментариев в файле17.05.2009, 13:38. Показов 2559. Ответов 5
Метки нет Все метки)
(
Подскажите как можно реализовать удаление комментариев в исходном файле программы на С\С++. Я так понимаю мне надо сначала найти комментарий. Т.е. ищу косую черту (/), а за ней звездочку (*) и все, что после это и до */ заганяю в массив символов. А что дальше? Или изначально неправильный подход. Объясните поподробней.
0
|
|
17.05.2009, 13:38 | |
Ответы с готовыми решениями:
5
Удаление комментариев Удаление комментариев Удаление комментариев |
![]() 2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
17.05.2009, 15:09 | 2 |
Алгоритм-то прост:
1. Найти две косых черты подряд ("//"). Если найдены, то: - зафиксировать позицию, - найти конец строки ("\r\n" или "\n", зависит от ОС), - удалить все от зафиксированной позиции до конца строки. 2. Найти последовательность "/*". Если найдены, то: - зафиксировать позицию, - найти последовательность "*/", - удалить все от зафиксированной позиции до этого места, включая эту последовательность. 3. Перейти к п.1. Проверки на конец файла добавь сам. ![]()
1
|
591 / 357 / 16
Регистрация: 06.02.2009
Сообщений: 1,386
|
|
17.05.2009, 15:25 [ТС] | 3 |
Я извеняюсь за вопрос, но как удалить всё, что я сочту за комментарии? Пишу на Си и мало опыта работы с файлами.
0
|
![]() ![]() |
|
19.05.2009, 13:25 | 4 |
В таких задачах не надо пытаться что-либо удалить. Нужно просто из читать из одного файла и писать в другой. При этом какие-то байты пропускать. Условно говоря
L: читаем символ из in-файла если конце файла, то выход если символ не '/', то переписываем его в out-файл и goto L; читаем символ если не / и не *, то переписываем его в out-файл и goto L; если символ '/', то считываем в цикле из in-файла до тех пор, пока не энтер или не конец строки, после чего goto L; если символ * то считываем из in-файла до тех пор, пока не встретим */, после чего goto L; Я расписал на пальцах, как это аккруатно засунуть в цикл - сам посмотришь
1
|
242 / 120 / 14
Регистрация: 15.10.2010
Сообщений: 395
|
||||||
21.10.2011, 20:15 | 5 | |||||
В продолжении темы. По удалению комментариев получилась такая вот немаленькая конструкция, насчитывающая 9 состояний детерминированного и полностью определённого конечного автомата.
0
|
![]() 3222 / 1749 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
22.10.2011, 11:09 | 6 |
1
|
22.10.2011, 11:09 | |
Помогаю со студенческими работами здесь
6
Удаление комментариев
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |