2010-02-26 18 views
7

que estoy recibiendo estos errores en mi programa después de pegar en algún código:callejero ' 342' en el programa en C++

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 

Estas son las dos líneas que están causando los errores.

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

¿Cómo solucionar esto?

Respuesta

32

El símbolo no es ". Esas son llamadas 'citas inteligentes' y generalmente se encuentran en documentos o blogs ricos.

+4

Creo que alguien está usando Word como un IDE;) – leppie

+7

O copiar y pegar el código de los blogs. Sea lo que sea, no es nuestro lugar criticarlo. – LiraNuna

+3

Esto también ocurre al copiar código de O'Reilly PDFs – mrwalker

6

Las líneas

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

tienen algún tipo "especial" de comillas dobles, intente lo siguiente:

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

Puede utilizar el comando sed para solucionar estos problemas.

Esto le dará una vista previa rápida de lo que será reemplazado.

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

Esto va a hacer los reemplazos y poner la de repuesto de un nuevo archivo llamado WithoutSmartQuotes.txt.

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

Esto sobrescribirá el archivo original.

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

+0

No creo que deba tener un espacio entre '-i' y' .bk' - GNU sed (al menos) los interpretará por separado (es decir, "in situ sin archivo de respaldo" y un comando que es un error de sintaxis) . –

0

Vale la pena mencionar aquí (para el que aterriza en esta página como yo) que este tipo de mensaje de error error: stray ‘\xyz’ in program puede aparecer con cualquier otro carácter o símbolo que no es reconocido por el compilador como legal uno.

Compartir mi experiencia personal:

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

primero de ellos como copia-pegar de un archivo PDF. No compila..

Más tarde se compila como se esperaba.

Cuestiones relacionadas