问题标签 [trigraphs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
333 浏览

c - 我如何在血腥/DevC++ 编译器中使用有向图和三元组

在编译器中,trigraphs 和 digraphs 不会被相应的单个字符替换。而是发出类似这样的警告,

我想知道为什么会出现这种类型的警告,以及如何解决这个问题以使用三合字母和二合字母。他们在语言中的目的是什么???

注意 - 我想看看二合字母和三合字母是如何工作的,所以不要告诉我不要使用它们,因为它们已经过时了......谢谢提前

0 投票
2 回答
212 浏览

c++ - 简单字符串输出不符合预期(出现新行)

我有与以下代码等效的代码来打印出一个短字符串:

但是输出出现在两行并丢失了一些字符:

/n不是换行符吗!发生了什么?

0 投票
2 回答
1175 浏览

c - 三字字符

2 示例以下源代码行

变为(在替换三元组序列后 ??/)

据说它会替换三字母序列,但它不是。

正在打印"Eh???/n"

我错过了什么吗?

0 投票
1 回答
551 浏览

c++ - C++11 中的 (Di|Tri) 图

在阅读了 digraphs 和 trigraphs 之后,我继续测试了一个简单的程序:

我反射性地做到了

令我惊讶的是,没有发出警告并且打印了 0 所以我继续尝试使用 C 编译器进行编译,但由于三元组,它确实发出了警告。

我的问题是为什么默认情况下会-std=c++11自动拉入-trigraphs并且不发出警告?(不使用 -Wall)某些 C++11 功能的实现是否需要它们?(非常怀疑,但值得一问)

0 投票
3 回答
4846 浏览

c++ - C++代码中的`???-`是什么意思?

我从一些遗留代码中看到了以下代码:

这个符号???-在 C++ 中是什么意思?我应该怎么理解?

0 投票
2 回答
101 浏览

c - 严格符合 ANSI C 的 ON/OFF 模式的不同结果

为什么严格遵守程序的ONor模式会产生不同的结果?严格遵守编写的原因,大多数现代工业编译器默认对自己的语言进行一些扩展,有的默认是C99等。OFFANSI C

这是结果。在这两种情况下都提交了编译器选项-w来抑制警告:

0 投票
2 回答
125 浏览

c++ - 为什么 MSVC 编译器将字符串文字中的“??-”序列转换为“~”?

我的代码中有一个硬编码字符串(应该用作文件掩码),但编译器总是将“??-”序列更改为“~”,例如:

testW 将是“test-~~??.txt”(不带引号)。

非 unicode 字符串也会发生同样的情况:

textA 将是“test-??~~??.txt”(不带引号)。

我的编译器是 Microsoft Visual C++ 2008。

我刚刚用 Visual Studio 2013 尝试过这个,运行时的字符串是正确的,并且当我跟踪应用程序时,智能感知在工具提示上显示正确的值,但是......但是在写作模式下(当应用程序没有运行时)智能感知在工具提示上使用 tildas 显示不正确的值。

0 投票
1 回答
769 浏览

c - 这些奇怪的问号是什么意思?

我遇到了一些看起来很奇怪的代码。它甚至看起来不像 C,但令我惊讶的是,它可以在我的 C 编译器上编译和运行。这是对 C 语言的一些非标准扩展吗?如果是,原因是什么?

输出:

0 投票
2 回答
215 浏览

c - 包含不可表示字符的三元组的字符文字的含义

在使用 ASCII 作为其字符集的 C 编译器上,字符文字的值'??<'将等同于 的值'{',即 0x7B。在字符集没有字符的编译器上,该文字的值是多少{

在字符串文字之外,编译器可以推断出它??<应该与定义的左大括号字符具有相同的含义,即使编译器字符集没有左大括号字符也是如此。实际上,三元组的全部目的是允许使用可表示字符的序列来代替不可表示的字符。然而,规范要求三元组甚至在字符串文字中处理,这让我感到困惑。如果编译器的字符集包含一个{字符,编译器可以允许'{'表示为'??<',但字符集包含{我认为程序员没有理由不简单地使用它。如果字符集不包括{但是,这似乎是首先使用三元组的唯一原因,编译器应该用什么可表示的字符来替换??<

0 投票
1 回答
3074 浏览

c++ - C ++ 17 为什么不删除二合字母和三合字母?

C++17 移除了三元组。IBM 强烈反对这一点(此处此处),因此似乎存在移除/不移除双方的争论。

但是既然决定删除三合字母,为什么要留下二合字母呢?除了保留三字母的原因(显然重量不足以保留它们)之外,我没有看到任何保留二合字母的理由。