Pačios C programos šaltinio kodo spausdinimas skiriasi nuo Quine problemos. Čia turime modifikuoti bet kurią C programą taip, kad ji atspausdintų visą šaltinio kodą.
Rekomenduojama: išbandykite savo požiūrį {eina} pirmiausia prieš pereinant prie sprendimo.
Prieiga
- Norėdami sužinoti failo vietą, naudokite iš anksto nustatytą makrokomandą __FILE__.
- Atidarykite šaltinio kodo failą skaitymo režimu ir gaukite failo žymeklį fptr. Patikrinkite, ar failas sėkmingai atidarytas, ar ne.
- Perskaitykite visą failo turinį naudodami do-while kilpą ir fgetc.
- Uždarykite failą naudodami fclose funkciją.
1. FAILOS makrometodas (failo pavadinimo spausdinimas)
Galime naudoti failų tvarkymo sąvokas, norėdami išspausdinti programos šaltinio kodą kaip išvestį. Idėja yra rodyti turinį iš to paties failo, kuriame rašote šaltinio kodą. C programavimo failo vieta yra iš anksto nustatytoje makrokomandoje __FILE__.
Žemiau yra C programa, skirta naudoti __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__); }
Aukščiau pateiktos programos išvestis yra šio C failo vieta.

Įgyvendinimas
Ši programa rodo šio konkretaus C failo (šaltinio kodo) turinį, nes __FILE__ eilutėje yra šio C failo vieta.
2. Rodyti programą
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; }
Išvestis:
Sukurti viktoriną