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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 23.07.2009, 15:59   #1
pavelstraut
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 91
По умолчанию помогите дорешать задачу

программа должна скопировать собственный исходный текст в файл с расширением сpp исключая комментарии(текст начиная с /* и до /*)
сам я написал как скопировать исходный текст в файл
а как обработать комментарии не могу понять
вот мой код
Код:
#include <conio.h>
#include <iostream.h>
#include <fstream.h>
#include "rus.cpp"
int main()
{
     ifstream in;
    ofstream out;
    char ch;
    in.open("Untitled2.cpp");
    out.open("nocomment.cpp");
    while(!in.eof())
    {
                    if(!(in.get(ch))) break;
                    out.put(ch);
    }
    getch();
    return 0;
}
помогите

Модератор: тег CODE!

Последний раз редактировалось Sazary; 24.07.2009 в 00:02.
pavelstraut вне форума
Старый 23.07.2009, 16:15   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Честно говоря лень сейчас думать над чём-нибудь более оптимальным, но идею, думаю, должны уловить
Код:
int main()
{
	ifstream in;
	ofstream out;
	char ch;
	in.open("Untitled2.cpp");
	out.open("nocomment.cpp");
	while(!in.eof())
	{
		if(!(in.get(ch))) break;
		if(ch == '/') {                  
			in.get(ch);
			if(ch == '/') {           //проверяем тип комментария, если он вида "//..текст..", то
				do {
					in.get(ch); // пропускаем все символы
				} while(ch != '\n');  // до конца строки
			} else if(ch == '*') {          // Если же он вида "/* .. текст.. */", то пропускаем всё внутри до тех пор
				while(true) {
					in.get(ch);
					if(ch != '*')   // Пока не встретим звёздочку, как встретим - проверяем, является ли она
						continue;
					in.get(ch);
					if(ch == '/') {  // частью "*/"(закрытие комментария)
						in.get(ch);
						break;    // Если да, то прерываем цикл пропуска комментов
					}
				}
			}
		}
		out.put(ch);
	}
	getch();

	return 0;
}

Последний раз редактировалось netrino; 23.07.2009 в 16:24. Причина: Добавлены комметарии
netrino вне форума
Старый 23.07.2009, 16:20   #3
pavelstraut
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 91
По умолчанию

теперь можете плиз обьянить код
pavelstraut вне форума
Старый 23.07.2009, 16:26   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Добавил комментарии, смотрите предыдущий пост)
netrino вне форума
Старый 23.07.2009, 16:53   #5
pavelstraut
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 91
По умолчанию

все тему можно закрывать
pavelstraut вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите дорешать программу darika Паскаль, Turbo Pascal, PascalABC.NET 4 14.05.2009 15:08
Помогите дорешать задачу на While Andrux Помощь студентам 12 29.12.2008 21:24