いくつかのコードを貼り付けた後、プログラムでこれらのエラーが発生します。
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”);
これを修正するには?
象徴 ”
ではありません "
。これらは「スマートクォート」と呼ばれ、通常はリッチドキュメントやブログにあります。
台詞
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");
この種類のエラーメッセージ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ファイルからコピー&ペーストされます。コンパイルされません。。
後で期待どおりにコンパイルされます。
Sedコマンドを使用して、これらの問題を修正できます。
これにより、何が置き換えられるかをすばやくプレビューできます。
sed s/[”“]/'"'/g File.txt
これにより、置換が行われ、WithoutSmartQuotes.txtという新しいファイルに置換が行われます。
sed s/[”“]/'"'/g File.txt > WithoutSmartQuotes.txt
これにより、元のファイルが上書きされます。
sed -i ".bk" s/[”“]/'"'/g File.txt