trigraph
Posted h404nofound
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了trigraph相关的知识,希望对你有一定的参考价值。
trigraph是c/c++对之前键盘无法输入一些符号而做出的补充设计,将以下字符用其他三个字符来代替
# | ??= |
\ | ??/ |
^ | ??‘ |
[ | ??( |
] | ??) |
{ | ??< |
} | ??> |
| | ??! |
~ | ??- |
要取消这种效果的话,字符分开输出就好了。
还有一个方法是加转义字符(c语言参考课程里的,暂时没实践,有错误请指正)
#include<stdio.h> int main(){ printf("Hello World??!\n"); //输出效果为Hello World| printf("Hello World?\?!\n"); //输出效果为Hello World??! return 0; }
注意:由于编译器的种类各样,对ANSI C的支持也不一样,所以可能会有些C编译器不处理“三字母词”,会将它们当做普通的字符串来处理。
gcc中就需要加上编译参数-trigraphs 才会做相应转换
如果你同时使用了这类编译器然后测评时又用的是另一种,就可能被坑qwq
如果要让让gcc支持标准,需要在编译的时候添加选择"-ansi"或者"-trigraphs"。手动编译时在命令行添加;在DEV C++图形界面中,两种方法:①在“工具”—>“编译选项”中,在“编译器”选项卡下,在“编译时加入以下命令”输入框中输入"-ansi"或者输入"-trigraphs",并且勾选该选项,这样编译运行的结果就会识别三字母词;②在“工具”—>“编译选项”中,在“代码生成/优化”选项卡下,左侧选中“C编译器”,右侧将“支持所有ANSI C标准”修改成“Yes”,然后编译运行即可
参考博客:https://blog.csdn.net/daheiantian/article/details/6095507
以上是关于trigraph的主要内容,如果未能解决你的问题,请参考以下文章