logo

Drukowanie kodu źródłowego samego programu C

Drukowanie kodu źródłowego samego programu w C różni się od problemu Quine'a. Tutaj musimy zmodyfikować dowolny program C w taki sposób, aby wydrukował cały kod źródłowy. 

Zalecane: wypróbuj swoje podejście {wchodzi} najpierw, zanim przejdziesz do rozwiązania.

Zbliżać się

  1. Użyj predefiniowanego makra __FILE__, aby uzyskać lokalizację pliku.
  2. Otwórz plik kodu źródłowego w trybie odczytu i uzyskaj wskaźnik pliku fptr. Sprawdź, czy plik został pomyślnie otwarty, czy nie.
  3. Przeczytaj całą zawartość pliku, używając pętli do-while i fgetc.
  4. Zamknij plik za pomocą funkcji fclose.

1. Metoda makra PLIKU (drukowanie nazwy pliku)

Możemy użyć koncepcji obsługi plików, aby wydrukować kod źródłowy programu jako wynik. Pomysł jest taki, aby wyświetlić zawartość tego samego pliku, w którym piszesz kod źródłowy. Lokalizacja pliku programowania C jest zawarta w predefiniowanym makrze __FILE__.

Poniżej znajduje się program C do użycia __FILE__:

C
 // C program to display the  // location of the file #include  // Driver code int main() {  // Prints location of C this C code.  printf('%s' __FILE__); }  


Dane wyjściowe powyższego programu to lokalizacja tego pliku C. 



Wynik programu 1' title=

Realizacja

Poniższy program wyświetla zawartość tego konkretnego pliku C (kod źródłowy), ponieważ __FILE__ zawiera lokalizację tego pliku C w ciągu znaków. 

2. Wyświetl program

C
// C program that prints its source code. #include   // Driver code int main(void) {  // We can append this code to any C program  // such that it prints its source code.  char c;   FILE *fp = fopen(__FILE__ 'r');    do  {  c = fgetc(fp);  putchar(c);  }  while (c != EOF);    fclose(fp);    return 0; } 

Wyjście:

Utwórz quiz