Imprimir el codi font d'un programa C és diferent del problema Quine. Aquí hem de modificar qualsevol programa C de manera que imprimeixi tot el codi font.
Recomanat: proveu el vostre enfocament {va} primer abans de passar a la solució.
Aproximació
- Utilitzeu la macro predefinida __FILE__ per obtenir la ubicació del fitxer.
- Obriu el fitxer de codi font en mode de lectura i obteniu el punter del fitxer fptr. Comproveu si el fitxer s'ha obert correctament o no.
- Llegiu tot el contingut del fitxer utilitzant el bucle do-while i fgetc.
- Tanqueu el fitxer amb la funció fclose.
1. Mètode de macro FITXA (impressió del nom del fitxer)
Podem utilitzar els conceptes de gestió de fitxers per imprimir el codi font del programa com a sortida. La idea és mostrar el contingut del mateix fitxer on esteu escrivint el codi font. La ubicació d'un fitxer de programació C es troba dins d'una macro predefinida __FILE__.
A continuació es mostra el programa C per utilitzar __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__); }
La sortida del programa anterior és la ubicació d'aquest fitxer C.

Implementació
El programa següent mostra el contingut d'aquest fitxer C concret (codi font) perquè __FILE__ conté la ubicació d'aquest fitxer C en una cadena.
2. Mostra el programa
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; }
Sortida:
Crea un qüestionari