2009-10-03 8 views
7

Schreiben Sie ein kleines C-Programm, das während des Kompilierens ein anderes Programm von der Eingabeterminal nimmt, und beim Ausführen gibt das Ergebnis für das zweite Programm. (HINWEIS: Der Schlüssel ist, glaube ich, UNIX).Wie schreibe ich Programm beim Kompilieren?

Angenommen, das Programm ist 1.c Dann, während

Kompilieren
$ cc -o 1 1.c 
int main() 
{ 
    printf("Hello World\n"); 
} 
^D 
$ ./1 
Hello World 
$ 
+0

wo ist die Frage? –

+4

Wird der Titel nicht als Frage gezählt? – Tom

Antwort

14

Dies ist ein alter Trick parlaour Ich denke,

Mein Programm, tty.c:

#include "/dev/tty" 

Shell:

$ gcc tty.c 
int main() { 
printf("Hey\n"); 
} *Ctrl-D here* 
In file included from tty.c:1: 
/dev/tty: In function ‘main’: 
/dev/tty:2: warning: incompatible implicit declaration of built-in function ‘printf’ 
$./a.out 
Hey 
+1

hmm, ordentlich. 1515151515 –

+2

Das ist wirklich eine überraschende Antwort ... hätte nie gedacht, dass es so etwas gibt ... – codingfreak

1

Die vernünftigste Art und Weise Kompilation lesen eine Datei #include wäre zu machen, aber es ist nicht mir klar, wie man es machen Lesen Sie die Standardeingabe auf allen Unix-Systemen (einfach in Linux, dank der Magie von /proc!, aber das wäre nicht tragbar).

Verwandte Themen