[c++] program wczytujacy swój wlasny kod

FEMO
Użytkownik
Użytkownik
Posty: 348
Rejestracja: 13 lut 2007, o 17:15
Płeć: Mężczyzna
Lokalizacja: warszawa
Podziękował: 163 razy

[c++] program wczytujacy swój wlasny kod

Post autor: FEMO »

jak napisać program, który wczyta swój własny kod źródłowy i po przetworzeniu zapisuje go do pliku o nazwie ‘plik.cpp’, pomijając wszystkie puste linie oraz wszelkie komentarze. W przypadku wystąpienia kilku białych znaków pozostawia tylko jeden z nich. W przypadku napotkania nawiasu klamrowego otwierającego sprawdza, czy po nim znajduje się w linii jakiś kod niebędący komentarzem. Jeżeli tak, umieszcza po znaku klamrowym znak nowej linii, tak aby ten kod został przeniesiony do linii następnej?

jak takie coś napisać?
Awatar użytkownika
Undre
Użytkownik
Użytkownik
Posty: 1430
Rejestracja: 15 lis 2004, o 02:05
Płeć: Mężczyzna
Lokalizacja:
Podziękował: 3 razy
Pomógł: 92 razy

[c++] program wczytujacy swój wlasny kod

Post autor: Undre »

Zadanko fajne, ale nie myśl, że dostaniesz gotowca w całości. Takie coś na start wrzucę (co by było od czego zacząć) :

Kod: Zaznacz cały

#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

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

  fstream myStream;
  char outputLine[1024];
  myStream.open("X:\main.cpp");
  
  
  if(myStream.is_open()) {
                         
    // cout << "file opened !"; // tego komentarza nie powinno byc w pliku wyjsciowym
    while(myStream) {
      // i tutaj trzeba zmodyfikowac tresc, bo wlasnie w tej petli lece po zrodle linijka po linijce :P
      myStream.getline(outputLine, 1024);
      cout << outputLine << endl;
      
      
    }
    
    myStream.close();
  } else {
         
    cout << "error opening file";
    
  }
  
  system("PAUSE");
  return EXIT_SUCCESS;
}
Miłego dłubania
FEMO
Użytkownik
Użytkownik
Posty: 348
Rejestracja: 13 lut 2007, o 17:15
Płeć: Mężczyzna
Lokalizacja: warszawa
Podziękował: 163 razy

[c++] program wczytujacy swój wlasny kod

Post autor: FEMO »

jak usunąć puste linie?
ODPOWIEDZ