【问题标题】:What does the '%lt' mean in C++? (NOT modulus, I know what that does)C++ 中的“%lt”是什么意思? (不是模数,我知道那是做什么的)
【发布时间】:2009-05-21 02:03:46
【问题描述】:

我曾经看过这行代码:

std::cout %lt;%lt; "Hello world!" %lt;%lt; std:: endl;

我想知道%lt;%lt; 是什么意思。

【问题讨论】:

  • 我删除了 'c' 标签,因为 cout 和
  • 如果有人能想出一种编译方法,则加分,如果打印文字,则加分。看不到如何重载 operator%。
  • 你可以重载operator%,但是进行这个编译需要一个unary operator%,这是不允许的。

标签: c++ operators


【解决方案1】:

你一定在网上看到过。有人上传了这一行:

std::cout << "Hello world!" << std::endl;

为了输出到html而翻译成这个:

std::cout &lt;&lt; "Hello world!" &lt;&lt; std::endl;

当然,因为&amp;lt;&lt; 的html 实体。

最后,某处决定将与号更改为百分号,可能是作为 url 编码方案的一部分。

【讨论】:

  • 嗯...听起来比我的想法更合理。我会删除我的并听从你的猜测。 ;-)
  • Funny:我正在考虑删除这个,因为它与其他两个基本相同。最主要的是 <到
  • 显然比我的匆忙工作更深思熟虑 - 如果我删除我的分数,我会失去我的分数吗?
  • @sean e: 最终,是的(要求 SO 团队启动rep recalc,他们在半随机的情况下进行,通常是在深夜,同时减轻高处的噼啪声,斯波尔斯基疯狂地咯咯笑在后台...)
  • 别说了——通常更简短、更简洁的答案更有帮助。
【解决方案2】:

看起来像“%lt;”应该为 http 传输进行转义。喜欢:

%lt;%lt;

应该是:

<<

【讨论】:

    【解决方案3】:

    我的第一个想法是,也许你看到了使用 C trigraphs 的代码。但是,&lt;&gt; 似乎没有三元组。

    C 三元组及其单字符等效项是:

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

    【讨论】:

    • 但二合字母包含百分号(包括 )。不幸的是,没有使用百分号和字母的有向图。
    猜你喜欢
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    • 2011-12-04
    • 2023-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多