Друк вихідного коду самої програми на Сі
Друк вихідного коду самої програми на C відрізняється від проблеми Quine. Тут нам потрібно змінити будь-яку програму на C таким чином, щоб вона друкувала весь вихідний код.
Рекомендовано: спробуйте свій підхід {іде} перш ніж переходити до вирішення.
Підхід
- Використовуйте попередньо визначений макрос __FILE__, щоб отримати розташування файлу.
- Відкрийте файл вихідного коду в режимі читання та отримайте покажчик файлу fptr. Перевірте, чи успішно відкритий файл чи ні.
- Прочитайте весь вміст файлу за допомогою циклу do-while і fgetc.
- Закрийте файл за допомогою функції fclose.
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 ; }
Вихід:
Створіть вікторину