web-dev-qa-db-ja.com

C ++プログラムのストレイ '\ 342'

いくつかのコードを貼り付けた後、プログラムでこれらのエラーが発生します。

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

エラーの原因となっている2つの行を次に示します。

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

これを修正するには?

15
neuromancer

象徴 ではありません "。これらは「スマートクォート」と呼ばれ、通常はリッチドキュメントやブログにあります。

42
LiraNuna

台詞

 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"); 
6
hlovdal

この種類のエラーメッセージ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ファイルからコピー&ペーストされます。コンパイルされません。

後で期待どおりにコンパイルされます。

1
Saurav Sahu

Sedコマンドを使用して、これらの問題を修正できます。

これにより、何が置き換えられるかをすばやくプレビューできます。

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

これにより、置換が行われ、WithoutSmartQuotes.txtという新しいファイルに置換が行われます。

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

これにより、元のファイルが上書きされます。

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

0
cokedude