Quantcast

A community for students. Sign up today!

Here's the question you clicked on:

55 members online
  • 0 replying
  • 0 viewing

hartnn

  • 2 years ago

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

  • This Question is Closed
  1. hartnn
    • 2 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
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    Sounds pretty crazy...

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

    yes...

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

    Lets see now....

  5. KonradZuse
    • 2 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
    • 2 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
    • 2 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
    • 2 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
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 1

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

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

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

  11. KonradZuse
    • 2 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
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    or just creating a billion print statements lol.

  13. hartnn
    • 2 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
    • 2 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
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    etc.

  16. KonradZuse
    • 2 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
    • 2 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
    • 2 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
    • 2 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
    • 2 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
    • 2 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
    • 2 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
    • 2 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
    • 2 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
    • 2 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
    • 2 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
    • one year 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
    • one year 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

Ask a Question
Find more explanations on OpenStudy

Your question is ready. Sign up for free to start getting answers.

spraguer (Moderator)
5 → View Detailed Profile

is replying to Can someone tell me what button the professor is hitting...

23

  • Teamwork 19 Teammate
  • Problem Solving 19 Hero
  • You have blocked this person.
  • ✔ You're a fan Checking fan status...

Thanks for being so helpful in mathematics. If you are getting quality help, make sure you spread the word about OpenStudy.

This is the testimonial you wrote.
You haven't written a testimonial for Owlfred.