有人能帮我创建这个命令吗?
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"有人能帮忙吗?
发布于 2011-04-08 04:06:01
实际上,您要做的是在彼此之间编写多个字符串文本。表达式
"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\""通常,引号"被解释为字符串文字的结尾,除非它前面有反斜杠,在这种情况下,它被解释为字符串中的引号字符。
https://stackoverflow.com/questions/5590229
复制相似问题