Write a program in C which outputs its own source code.
i don't want the exact code, just discuss different logic with which we can do this....
Sounds pretty crazy...
yes...
Lets see now....
And the source code has to actually do something itself huh?
no restriction...it can do something else....or it can just output its own source code...
Cuz technically you could just write a whole bunch of nonsense as a string ansd then print that :P.
Idk why you would ever need to do this, is this some BS school assigment?
not assignment...just curious to know how..
Yeah I'm stumped on this one atm....
I asked on the code ranch for you, so lets see what they think up....
or just creating a billion print statements lol.
lol, a printf inside a printf inside a printf .....and so on..infinite printfs
na more like int i = 0; printf("int i = 0);
etc.
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...
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
errr... do u want this code to be platform independent?
I was also thinking that, but you would have to say what you want to write and read in :p.
How about taking argv[0], appending ".c", if the file exists, open it, getc/putc and close it?
This is like asking to build a screwdriver using a screwdriver. :P
quine is interesting, but not in c. rsmith, can u elaborate ?
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); }
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.
They have c++ you can change what's needed youself...e
Hint: You can save the code onto a textfile and thereafter display it directly via simple input functions :)
Join our real-time social learning platform and learn together with your friends!