logo

Отпечатване на изходния код на самата C програма

Самото отпечатване на изходния код на C програма е различно от проблема Quine. Тук трябва да модифицираме всяка C програма по начин, който да отпечатва целия изходен код. 

Препоръчително: Моля, опитайте своя подход {отива} първо, преди да преминете към решението.

Подход

  1. Използвайте предварително дефиниран макрос __FILE__, за да получите местоположението на файла.
  2. Отворете файла с изходния код в режим на четене и вземете указателя на файла fptr. Проверете дали файлът е отворен успешно или не.
  3. Прочетете цялото съдържание на файла, като използвате цикъла do-while и fgetc.

1. Макрос метод FILE (отпечатване на име на файл)

Можем да използваме концепциите за обработка на файлове, за да отпечатаме изходния код на програмата като изход. Идеята е да се покаже съдържанието от същия файл, в който пишете изходния код. Местоположението на файл за програмиране на C се съдържа в предварително дефиниран макрос __FILE__.

По-долу е C програмата за използване на __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__); }  


Резултатът от горната програма е местоположението на този C файл. 



Резултат от програмата 1' title=

Внедряване

Следната програма показва съдържанието на този конкретен C файл (изходен код), тъй като __FILE__ съдържа местоположението на този C файл в низ. 

2. Покажете програмата

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; } 

Изход:

Създаване на тест