Отпечатване на изходния код на самата C програма
Самото отпечатване на изходния код на C програма е различно от проблема Quine. Тук трябва да модифицираме всяка C програма по начин, който да отпечатва целия изходен код.
Препоръчително: Моля, опитайте своя подход {отива} първо, преди да преминете към решението.
Подход
- Използвайте предварително дефиниран макрос __FILE__, за да получите местоположението на файла.
- Отворете файла с изходния код в режим на четене и вземете указателя на файла fptr. Проверете дали файлът е отворен успешно или не.
- Прочетете цялото съдържание на файла, като използвате цикъла 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 файл.
Внедряване
Следната програма показва съдържанието на този конкретен 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 ; }
Изход:
Създаване на тест