Программа Удаляющая Комментарии Из Листинга Программы С++

Тема в разделе "C/C++/C#", создана пользователем federe, 21 ноя 2011.

  1. federe

    federe Гость

    Код (C++):
    #include<iostream.h>
    #include<fstream.h>
    int main()
    {
    ifstream fin("blabla.cpp");
    ofstream fout("blabla.cpp");
    for(i=0;!fin.eof();i++)
    {
    fin.getline(stroka, sizeof(stroka));
    for(j=0;stroka[j]!=NULL;j++)
    if(stroka[i]=='/'&&stroka[i+1]=='/')
    for(k=i;stroka[k]!=NULL;k++)
    stroka[k]=' ';
    fout<<stroka<<"/n";
    }
    fin.close();
    fout.close();
    return 0;
    }
    программа удаляет комментарии типа:
    //блабла
    /*блабла*/
    но в типе
    /*блабла
    блабла*/ удаляет только первую строку
    что надо изменить/сделать подскажите?
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    А что такое stroka ?

    Добавлено: Что-то мне подсказывает что комментарии в стиле: /*блабла*/ она тоже не удаляет...
     
  3. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    С виду программа либо вообще удаляет любую строку, начинающуюся на /, либо не должна удалять комментарии, начинающиеся на /*
     
  4. federe

    federe Гость

    помогите написать тогда?
     
  5. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Как ты хочешь чтобы мы тебе помогли, если ты сам к этому усилий не прилагаешь?
     
  6. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Ну стоило бы конкретизировать условия задачи, которые влияют на её сложность.
    Например, может ли попасться во входных данных такое:
    puts("Hello, world!"); //Выводит приветствие
    или такое:
    puts("// This is comment"); где удалять ничего не надо...
    Или незакрытый комментарий /*
     
  7. federe

    federe Гость

    программа удаляющая все комментарии из листинга программы С++.программа должна обрабатывать файл *.сpp указываемый пользователем в начале работы

    Добавлено:
    я попробывал - ничего не выходит поэтому у вас спрашиваю
     
  8. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Ищешь символ '/'.
    Если следующий за ним такой же, то удаляешь (или пропускаешь) строку.
    Если следующий символ '*', то ищешь следующий символ '*', если за ним символ '/', тот пропускаешь (или удаляешь) этот кусок.
    И так далее.
     
  9. federe

    federe Гость

    пробывал но у меня она удаляет все начиная /*...
     
  10. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    пробЫвал, пробЫвал,... не заметно, если у вас программа удаляет все символы начиная с /* - то вы явно пропустили эту часть:
    допишите и все заработает, ну если конечно, на самом деле "пробЫвал".
    Ну а если не "пробЫвал" - то читай пятый пункт правил, особенно этот кусок:
     
  11. federe

    federe Гость

    все уже сделал,работает,но от вас никакой пользы
     
  12. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    А это ты внимательно изучил:
    ? Или ты думал что напишешь задание и "левый" код и за тебя все решат? Какой еще пользы ты ждал? Какие усилия предпринял для решения задачи?
     
Загрузка...

Поделиться этой страницей