Att skriva ut källkoden för ett C-program i sig skiljer sig från Quine-problemet. Här måste vi modifiera vilket C-program som helst på ett sätt så att det skriver ut hela källkoden.
Rekommenderas: Vänligen prova ditt tillvägagångssätt {går} först innan vi går vidare till lösningen.
Närma sig
- Använd det fördefinierade makrot __FILE__ för att få platsen för filen.
- Öppna källkodsfilen i läsläge och hämta filpekaren fptr. Kontrollera om filen har öppnats eller inte.
- Läs allt innehåll i filen med hjälp av do-while loop och fgetc.
- Stäng filen med fclose-funktionen.
1. FILmakrometod (skriver ut filnamn)
Vi kan använda koncepten för filhantering för att skriva ut programmets källkod som utdata. Tanken är att visa innehållet från samma fil som du skriver källkoden. Platsen för en C-programmeringsfil finns i ett fördefinierat makro __FILE__.
Nedan är C-programmet för att använda __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__); }
Utdata från ovanstående program är platsen för denna C-fil.

Genomförande
Följande program visar innehållet i denna specifika C-fil (källkod) eftersom __FILE__ innehåller platsen för denna C-fil i en sträng.
2. Visa programmet
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; }
Produktion:
Skapa frågesport