Trigraph sequences

Hi,

i have read trigraph sequence in
The C99 Draft (N869, 18 January, 1999)

printf("Eh???/n");
will produce
printf("Eh?\n");

what does that mean?
i tried that but i am getting the same output i.e
Eh???/n.

what actually these tri graph characters are?
any idea why ,when and where these are used?

Thanks for your valuable answers.

Some characters in the C/C++ basic character set are not available on all keyboards. Trigraphs were "invented" to enable these characters to be entered into C/ C++ source code using a sequence of three ISO 646 characters. More information is available in this Wikipedia: Digraphs and trigraphs article.

With gcc you have to use the --trigraph option to enable trigraph functionality.

$ cat t.c
#include <stdio.h>

main()
{
    printf("Eh???/n");
}

$ gcc -o t t.c
$ ./t
Eh???/n$

$ gcc --trigraphs -o t t.c
$ ./t
Eh?