在C ++程序中迷路'\ 342'

时间:2010-02-26 10:35:56

标签: c++ compiler-errors

在粘贴一些代码后,我的程序中出现了这些错误:

showdata.cpp:66: error: stray ‘\342’ in program
showdata.cpp:66: error: stray ‘\200’ in program
showdata.cpp:66: error: stray ‘\235’ in program
showdata.cpp:66: error: stray ‘\’ in program
showdata.cpp:66: error: stray ‘\342’ in program
showdata.cpp:66: error: stray ‘\200’ in program
showdata.cpp:66: error: stray ‘\235’ in program
showdata.cpp:67: error: stray ‘\342’ in program
showdata.cpp:67: error: stray ‘\200’ in program
showdata.cpp:67: error: stray ‘\235’ in program
showdata.cpp:67: error: stray ‘\’ in program
showdata.cpp:67: error: stray ‘\342’ in program
showdata.cpp:67: error: stray ‘\200’ in program
showdata.cpp:67: error: stray ‘\235’ in program

以下是导致错误的两行。

size_t startpos = str.find_first_not_of(” \t”); 
size_t endpos = str.find_last_not_of(” \t”); 

如何解决这个问题?

4 个答案:

答案 0 :(得分:38)

符号不是"。这些被称为“智能引号”,通常可以在丰富的文档或博客中找到。

答案 1 :(得分:6)

 size_t startpos = str.find_first_not_of(” \t”); 
 size_t endpos = str.find_last_not_of(” \t”); 

有一些“特殊”的双引号,请尝试以下方法:

 size_t startpos = str.find_first_not_of(" \t"); 
 size_t endpos = str.find_last_not_of(" \t"); 

答案 2 :(得分:1)

这里值得一提的是(对于与我一样登陆此页面的人),此类错误消息error: stray ‘\xyz’ in program可以与编译器无法识别为合法的任何其他字符或符号一起出现。

分享我的个人经历:

 - bool less<const char∗>(const char∗ a, const char∗ b)  
 - bool less<const char*>(const char* a, const char* b)   

前一个是从PDF文件中复制粘贴的。 它无法编译。

后来编译按预期编译。

答案 3 :(得分:0)

您可以使用sed命令来解决这些问题。

这将让您快速预览将要替换的内容。

sed s/[”“]/'"'/g File.txt

这将执行替换并将替换放在名为WithoutSmartQuotes.txt的新文件中。

sed s/[”“]/'"'/g File.txt > WithoutSmartQuotes.txt

这将覆盖原始文件。

sed -i ".bk" s/[”“]/'"'/g File.txt