trigraph

trigraph是c/c++对之前键盘无法输入一些符号而做出的补充设计,将以下字符用其他三个字符来代替

#   ??= 
??/
^ ??'
[ ??(
] ??)
{ ??<
} ??>
| ??!
~ ??-

要取消这种效果的话,字符分开输出就好了。

还有一个方法是加转义字符(c语言参考课程里的,暂时没实践,有错误请指正)

#include<stdio.h>
int main(){
       
    printf("Hello World??!
");
    //输出效果为Hello World|
    printf("Hello World??!
");
    //输出效果为Hello World??!
    
    return 0;
}
View Code

注意:由于编译器的种类各样,对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

原文地址:https://www.cnblogs.com/h404nofound/p/10797607.html