Блуждающий '\ 342' в программе C ++ - PullRequest
14 голосов
/ 26 февраля 2010

Я получаю эти ошибки в моей программе после вставки в некоторый код:

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 ]

39 голосов
/ 26 февраля 2010

Символ не является ". Они называются «умными цитатами» и обычно встречаются в богатых документах или блогах.

6 голосов
/ 26 февраля 2010

Линии

 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"); 
1 голос
/ 31 августа 2017

Здесь стоит упомянуть (для тех, кто попадает на эту страницу точно так же, как я), что такого рода сообщение об ошибке 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. Не компилируется. .

Позже один компилируется как ожидалось.

0 голосов
/ 13 ноября 2014

Вы можете использовать команду sed, чтобы исправить эти проблемы.

Это даст вам быстрый предварительный просмотр того, что будет заменено.

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

Это сделает замену и поместит замену в новый файл без имени SmartQuotes.txt.

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

Это заменит исходный файл.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...