【问题标题】:Printing variable in quotation marks C++在引号中打印变量 C++
【发布时间】:2018-11-01 22:04:39
【问题描述】:

给定:

string element = "hello";

我想打印以下内容:

"hello" //with quotation marks

我找到了如何使用 \"hello\" 打印带引号的单词,但我想使用我的变量名元素打印出 "hello"。

【问题讨论】:

  • 感谢您的指出,我对我的帖子进行了编辑。我只想使用我的变量名元素来打印出引号中变量名的内容。
  • 引号不是作业中字符串的一部分。它们让 解析器 知道您正在输入一个字符串。要么添加其他响应中详述的转义引号,要么使用原始字符串。
  • 这不是@Brandon 在做什么吗?
  • 你的意思是std::cout << '"' << element << '"';
  • @drescherjm 是的。

标签: c++


【解决方案1】:

你能得到的最接近的地方

string element = "hello";
std::cout << element

打印出来

"hello"

就是使用std::quoted那会生成代码

string element = "hello";
std::cout << std::quoted(element);

它会输出

"hello"

请注意std::quoted 的作用远不止添加引号。如果您的字符串包含引号,那么它将修改这些引号并在其中添加一个\。这意味着

string element = "hello \"there\" bob";
std::cout << std::quoted(element);

将打印

"hello \"there\" bob"

而不是

"hello "there" bob"

【讨论】:

  • @3Dave 它是如何隐藏的? std::cout &lt;&lt; std::quoted(element); self 文档,您要输出到 cout element 中的任何内容并引用它。
  • std::quoted() 是在 C++14 中添加的。
  • @Dracep 不客气。我很高兴你问这个问题,因为这是我第一次能够在答案中使用它。
  • @user4581301 不仅如此!您可以将&gt;&gt; 转换为std::quoted(x),它会自动取消转义字符串。
  • @HolyBlackCat 刚刚看到。本来打算发表评论,仅此一项可能会使大量 CSV 问题答案过时。
【解决方案2】:

在引号前使用正斜杠

std::cout << "\"" << element << "\"" << std::endl;

如果你想在你的字符串中有引号, 用正斜杠为带引号的变量赋值

string element = "\"hello\"";

【讨论】:

  • 感谢您的回答,但我只想使用变量名元素打印出“hello”。
  • 非常感谢!这有效,我的问题是尝试使用变量名实现 \。
  • @Dracep 如果有效,请单击此答案旁边的复选框以将其标记为已解决。
【解决方案3】:

你必须写引号和额外的变量,比如

std::cout << '\"' << element << '\"';

顺便说一句:与"\"" 这样的字符串文字相比,您必须转义双引号,通过使用字符文字,您可以不转义:所以以下内容也是有效的:

std::cout << '"' << element << '"';

【讨论】:

  • 我认为您需要引号,而不是换行符。
  • 如果是字符,是否必须转义双引号? (我想我可以去测试一下,但这似乎违反直觉)
  • @3Dave:你是对的;两者都有效。查看编辑后的答案
【解决方案4】:
string element = "\"hello\"";
std::cout << element;

【讨论】:

  • 我想他说他已经知道如何用引号创建一个字符串,但他想在给定字符串变量的情况下打印引号。
猜你喜欢
  • 2015-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多