Javatpoint Logo
Javatpoint Logo

Trigraphs in C++


When translating C and C++ source code, a set of three-character sequences known as trigraphs are swapped out for single characters. In order to allow programm to be written in a character set that does not contain all of the characters required by the C language, they were first incorporated in the C standard in 1990.

No matter what character set the source code is written in, trigraphs are always replaced with the same character. As a result, any platform that supports the C or C++ language will be able to run a program that uses trigraphs.

The nine trigraph sequences are listed in the following table, along with the characters that take their place:

S.No. Trigraph Equivalent
1. ??= #
2. ??/ \
3. ??' ^
4. ??( [
5. ??) ]
6. ??! |
7. ??< {
8. ??> }
9. ??- ~


During the translation stage of the compilation process, trigraphs are swapped out for their equivalent characters. Therefore, they are invisible in the binary code that has been generated.

The C and C++ languages' use of trigraphs is debatable. Others think they are a confusing and superfluous feature, while some see them as a helpful tool for mobility.

Trigraphs should be used or not used in C or C++ programs depending on your personal requirements. Trigraphs may be a helpful tool to utilize when writing code that will be compiled on a range of platforms in order to guarantee that your code will function properly. Trigraphs may not be supported by all compilers, therefore if you are writing code for a specific platform, you might wish to avoid using them.

C++ Trigraph Example:

The basic Trigraphs sequence implementation example is shown below:


My message to JavaTpoint
My program is C++

Another example of a trigraph sequence is shown below:


My Name is: saswat
My Age is: 26
My Qualification is: MCA
I'm From odisha.

Difficulties with Trigraphs

Trigraphs have a variety of drawbacks. They only have a limited number of characters that they may replace, which is one drawback. Trigraphs can be challenging to understand and complicated, which is another drawback. Finally, not all compilers support trigraphs.

Solutions for Trigraphs

Trigraphs can be replaced by a variety of structures. Using a character set that has all the symbols needed by the C or C++ languages is an alternative. Another option is to define macros for the characters that aren't included in the character set using a preprocessor directive. Finally, you can use a program to translate your source code into a character set that has every character you need.

Youtube For Videos Join Our Youtube Channel: Join Now


Help Others, Please Share

facebook twitter pinterest

Learn Latest Tutorials


Trending Technologies

B.Tech / MCA