如何使用四()

how to use fout ()

本文关键字:何使用      更新时间:2023-10-16

我已经创建了这个命令


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" (note that the third string is the empty string " ')。

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

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

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