Escribí este programa:
#include<stdio.h>
int main()
{
printf(“Hello World\n”);
return 0;
}
Lo guardé como first.c
e intenté compilar, pero al recibir este problema también he instalado el compilador gcc.
$ gcc first.c -o first1
first.c: In function ‘main’:
first.c:4:1: error: stray ‘\342’ in program
first.c:4:1: error: stray ‘\200’ in program
first.c:4:1: error: stray ‘\234’ in program
first.c:4:11: error: ‘Hello’ undeclared (first use in this function)
first.c:4:11: note: each undeclared identifier is reported only once for each function
it appears in
first.c:4:17: error: expected ‘)’ before ‘World’
first.c:4:17: error: stray ‘\’ in program
first.c:4:17: error: stray ‘\342’ in program
first.c:4:17: error: stray ‘\200’ in program
first.c:4:17: error: stray ‘\235’ in program
¿Como puedo solucionar este problema?
Respuestas:
El problema es que tiene comillas Unicode en lugar de comillas ASCII; probablemente su editor los cambió automáticamente, o usted copió el texto de un sitio que hace esto automáticamente en su software de autoría. Reemplace las comillas con comillas ASCII normales (0x22, ") y debería funcionar.
Fuente fija:
fuente
"
) también son caracteres Unicode. ( También resultan ser caracteres ASCII, pero cada vez que alguien elige entre los dos, su archivo probablemente se guarda en algún formato Unicode. En un sistema similar a Unix, generalmente UTF-8.)–
lugar del-
.Estás encerrando tu cadena en el tipo incorrecto de comillas.
Tienes:
En cambio, deberías tener:
Si bien las citas que ha utilizado son similares, un compilador de C no reconoce que encierran una cadena. Por lo tanto, recibe mensajes de error sobre caracteres Unicode no reconocidos, y recibe mensajes de error que muestran que el contenido de la cadena se interpreta como código de programa sin comillas.
Notará que las comillas que ha usado tienen caracteres separados para comenzar y finalizar una cita (están curvadas de la forma en que las comillas a menudo se componen). Muchos procesadores de texto, como sugirió Jobin, convertirán automáticamente las
"
comillas simples en comillas elegantes. Si está utilizando un procesador de textos para componer programas en C, debería usar un editor de texto.Ubuntu viene
gedit
instalado por defecto (aunque también hay muchos otros editores de texto para elegir). Al igual que muchos editores de texto,gedit
proporciona resaltado de sintaxis para muchos lenguajes de programación, incluido C (por lo que se mostrará texto diferente en su programa en diferentes colores para indicar su significado), que es una característica práctica y hace que un editor de texto sea mucho más conveniente y fácil de usar para programación que un procesador de textos.Esto podría ser específico de Ubuntu, si está acostumbrado a un editor de texto en otra plataforma que reduce automáticamente las comillas pegadas a la versión no elegante. Pero esta pregunta podría terminar cerrándose y migrando a Stack Overflow .
fuente
Puede usar el
sed
comando para solucionar estos problemas.Esto le dará una vista previa rápida de lo que será reemplazado.
Esto hará los reemplazos y colocará el reemplazo en un nuevo archivo llamado
WithoutSmartQuotes.txt
:Esto sobrescribirá el archivo original:
fuente