如何在C++中打印

pgky5nke  于 2023-02-10  发布在  其他
关注(0)|答案(5)|浏览(214)

我需要打印一个字符串,其内容如下:

std::string("-I\"/path/to/dir\" ");

基本上,我需要这样做是因为我使用C代码来生成C代码。
我想通过ofstream写上面的字符串,比如

ofstream fout;
 fout << the_string << endl;

问题是我不能在字符串中执行\\"

eyh26e7m

eyh26e7m1#

只需转义斜杠 * 和引号 * 即可!例如\"--〉\\\"

fout << "std::string(\"-I\\\"/path/to/dir\\\" \");" << std::endl;

在C0x/C11中

fout << R"(std::string("-I\"/path/to/dir\" ");)" << std::endl;

它使用***原始字符串文本***1

* 请参见在http://ideone.com/TgtZK上测试的两个版本 *

[1]毫无疑问,www.example.com和stackoverflow的语法标记ideone.com还没有准备好:)

42fyovps

42fyovps2#

这是可行的:

#include <iostream>

using std::cout;
using std::endl;

int main() {
  cout << "std::string(\"-I\\\"/path/to/dir\\\" \");" << endl;
  return 0;
}

印刷

std::string("-I\"/path/to/dir\" ");

重点是:你需要同时转义斜杠和引号。

6qqygrtg

6qqygrtg3#

我希望我没理解错你的问题:
换码\和换码"
\\\"

to94eoyn

to94eoyn4#

你可能想尝试加入额外的“/”字符,因为单个的“/”不会被解析为字符串。我认为它应该可以工作(我是Java/C#的家伙,我自己也遇到过这个问题几次)。

mrzz3bfm

mrzz3bfm5#

这可以作为标题问题的答案,即使这不是你的问题:

#include <iostream>
using namespace std;

int main(){
    std::string foo = string(" /!\\ WARNING /!\\ -> 1");
    cout << foo << endl;
    cout << " /!\\ WARNING /!\\ -> 2" << endl;
    return 0;
}

其输出为:
/!\警告/!\ -〉1
/!\警告/!\ -〉2

相关问题