Here's the question you clicked on:

55 members online
  • 0 replying
  • 0 viewing

hartnn

  • 3 years ago

Write a program in C which outputs its own source code.

  • This Question is Closed
  1. hartnn
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 1

    i don't want the exact code, just discuss different logic with which we can do this....

  2. KonradZuse
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    Sounds pretty crazy...

  3. hartnn
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 1

    yes...

  4. KonradZuse
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    Lets see now....

  5. KonradZuse
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    And the source code has to actually do something itself huh?

  6. hartnn
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 1

    no restriction...it can do something else....or it can just output its own source code...

  7. KonradZuse
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    Cuz technically you could just write a whole bunch of nonsense as a string ansd then print that :P.

  8. KonradZuse
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    Idk why you would ever need to do this, is this some BS school assigment?

  9. hartnn
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 1

    not assignment...just curious to know how..

  10. KonradZuse
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    Yeah I'm stumped on this one atm....

  11. KonradZuse
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    I asked on the code ranch for you, so lets see what they think up....

  12. KonradZuse
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    or just creating a billion print statements lol.

  13. hartnn
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 1

    lol, a printf inside a printf inside a printf .....and so on..infinite printfs

  14. KonradZuse
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    na more like int i = 0; printf("int i = 0);

  15. KonradZuse
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    etc.

  16. KonradZuse
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    but you could literally do printf("code code code code more code yay code"); If the code doesn't have to run... 1 GIANT print statement...

  17. duckhunt
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    Dont know if this will work... but u can try file functions (read and write or standard output)... (assuming u are going to save the source code file first) just ask your code to read that file (source.c) and maybe buffer it in some array .. and then print it :P

  18. duckhunt
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    errr... do u want this code to be platform independent?

  19. KonradZuse
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    I was also thinking that, but you would have to say what you want to write and read in :p.

  20. rsmith6559
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    How about taking argv[0], appending ".c", if the file exists, open it, getc/putc and close it?

  21. across
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    This is like asking to build a screwdriver using a screwdriver. :P

  22. KonradZuse
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    I found this http://en.wikipedia.org/wiki/Quine_(computing)

  23. hartnn
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 1

    quine is interesting, but not in c. rsmith, can u elaborate ?

  24. msmithhnova
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    Yeah, quine is an odd area of CS. This code will print everything but the include line. #include <stdio.h> int main() { char *s="int main() { char *s=%c%s%c; printf(s,34,s,34); }"; printf(s,34,s,34); }

  25. rsmith6559
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    C is a compiled language. The executing file isn't the source file. Therefore, the program becomes basically, a simple open a file read it in, output it and close the file. A simple guess for the source code file name is the executable file's name with ".c" appended.

  26. KonradZuse
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    They have c++ you can change what's needed youself...e

  27. DLS
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    Hint: You can save the code onto a textfile and thereafter display it directly via simple input functions :)

  28. DLS
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    http://en.wikipedia.org/wiki/Quine_(computing)

  29. Not the answer you are looking for?
    Search for more explanations.

    • Attachments:

Ask your own question

Sign Up
Find more explanations on OpenStudy
Privacy Policy