gpt4 book ai didi

c++ - fout()的使用方法

转载 作者:搜寻专家 更新时间:2023-10-31 00:46:06 24 4
gpt4 key购买 nike

有人能帮我创建这个命令吗


fout <<"osql -Ubatascan -Pdtsbsd12345 -dpos -i""c:\\temp_pd.sql"""<<endl;

结果输出

osql -Ubatascan -Pdtsbsd12345 -dpos -ic:\temp_pd.sql

我想要的输出

osql -Ubatascan -Pdtsbsd12345 -dpos -i"c:\temp_pd.sql"

有人可以帮忙吗?

最佳答案

您所做的实际上是将多个字符串文字并排写入。表达式

"foo""bar"

被解析为两个字符串文字 "foo""bar"。 C 和 C++ 语言表示,当字符串文字彼此相邻时,它们会在编译时粘贴在一起成为一个大字符串文字。因此,上面的表达式完全等同于单个字符串文字 "foobar"

因此,您的表达式被解析为以下三个字符串文字:

"osql -Udatascan -Pdtsbsd7188228 -dpos -i"
"c:\\temp_pd.sql"
""

当粘贴在一起形成字符串 "osql -Udatascan -Pdtsbsd7188228 -dpos -ic:\\temp_pd.sql"(注意第三个字符串是空字符串""`)。

你想要做的是使用转义序列 \" 在你的字符串文字中包含一个文字引号。这样写:

"osql -Udatascan -Pdtsbsd7188228 -dpos -i\"c:\\temp_pd.sql\""

通常,引号 " 被解释为字符串文字的结尾,除非它前面有反斜杠,在这种情况下,它被解释为字符串中的引号字符。

关于c++ - fout()的使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5590229/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com