Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2012, 20:14   #1
Arrioh
Пользователь
 
Регистрация: 25.03.2012
Сообщений: 60
Стрелка Удаляем комментарии с++. Почти...

Пишу программу которая удаляет комментарии из текстового файла. Однострочные комментарии удаляет полноценно. А вот комментарии типа '/*' полноценно удалить не удается т.к. если в программе будет деление '/' то результат будет сами знаете какой. SOS.

Цитата:
#include <iostream>
#include <fstream>

using namespace std;

int main(int argc, char* argv[])
{

ifstream datesInput;
datesInput.open("testing.cpp");

if(!datesInput.is_open())
{
cout << "ERROR!" ;
cin.get();
return -1;
}

char d;
char c;
while ( (c = datesInput.get()) != EOF)

{
if(c=='/')
{ d = datesInput.peek();

if (d == '/' || d == '*')
if (d == '/')
datesInput.ignore(INT_MAX, '\n');
else
datesInput.ignore(INT_MAX, '/');

else if (d !='/' || d != '*')
cout << c; //accepting '/'
}

else
cout << c;

}


cin.get();

return 0;
}#include <iostream>
#include <fstream>

using namespace std;

int main(int argc, char* argv[])
{

ifstream datesInput;
datesInput.open("testing.cpp");

if(!datesInput.is_open())
{
cout << "ERROR!" ;
cin.get();
return -1;
}

char d;
char c;
while ( (c = datesInput.get()) != EOF)

{
if(c=='/')
{ d = datesInput.peek();

if (d == '/' || d == '*')
if (d == '/')
datesInput.ignore(INT_MAX, '\n');
else
datesInput.ignore(INT_MAX, '/');

else if (d !='/' || d != '*')
cout << c; //accepting '/'
}

else
cout << c;

}


cin.get();

return 0;
}
Arrioh вне форума Ответить с цитированием
Старый 19.04.2012, 13:15   #2
Arrioh
Пользователь
 
Регистрация: 25.03.2012
Сообщений: 60
По умолчанию

По причине отсутствия каких либо ответов попробую перестроить свой вопрос: Как удалить многострочные комментарии?
Arrioh вне форума Ответить с цитированием
Старый 19.04.2012, 13:58   #3
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

А если предположить, что при делении обязательно должны быть два числа с обеих сторон знака "/", а в комментариях всегда "/*" и "*/" (в смысле с одной какой-либо стороны должна быть звездочка)
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 19.04.2012, 14:06   #4
sIllent
Пользователь
 
Аватар для sIllent
 
Регистрация: 11.04.2012
Сообщений: 23
По умолчанию

Что бы удалить многострочный комментарий нужно чтобы текущий символ был / И следующий *, то есть должно был что-то вроде (с=='/' && d=='*') это есть у тебя с текущий символ, а d следующий за ним.
sIllent вне форума Ответить с цитированием
Старый 19.04.2012, 16:20   #5
Arrioh
Пользователь
 
Регистрация: 25.03.2012
Сообщений: 60
По умолчанию

ACE Valery, идея мне понятно. А вот осуществление...
Arrioh вне форума Ответить с цитированием
Старый 19.04.2012, 16:50   #6
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Arrioh

Удаление комментов - это очень увлекательное, и крайне доставляющее занятие.
например, подумай от таких фрагментах кода, как:

char* s = " ля-ля-ля // тум-пу-ру-рум";

а также

MessageBoxA(NULL, "\"/*\"", "\"*/\"", MB_OK);

море веселья гарантировано! :D
Rififi вне форума Ответить с цитированием
Старый 19.04.2012, 17:12   #7
Arrioh
Пользователь
 
Регистрация: 25.03.2012
Сообщений: 60
По умолчанию

Кажется и завтра кататься на велосипеде я не поеду...
Arrioh вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаляем с переменной все кроме цифр. celovec Общие вопросы Delphi 13 14.08.2011 23:13
Оптимизация по весу или удаляем всё лишнее к чертям! Ksardas13 C++ Builder 2 05.05.2011 09:26
Первую почти сделал Ko$ Помощь студентам 0 16.03.2011 14:18
Почти работающая программа на С++ S.T.U.D.E.N.T Помощь студентам 0 09.04.2009 10:19
Домены РУ почти даром! Nazgul-91 Свободное общение 2 02.11.2008 01:08