Como corrigir erros de compilação que mencionam “stray‘ \ 342 ’’ e “stray‘ \ 200 ’”? [fechadas]

9

Eu escrevi este programa:

#include<stdio.h>
int main()
{
printf(“Hello World\n”);
return 0;
}

Eu salvei como first.c e tentei compilar, mas recebendo este problema eu instalei mesmo o compilador gcc também.

$ gcc first.c -o first1
first.c: In function ‘main’:
first.c:4:1: error: stray ‘2’ in program
first.c:4:1: error: stray ‘0’ in program
first.c:4:1: error: stray ‘4’ 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 ‘2’ in program
first.c:4:17: error: stray ‘0’ in program
first.c:4:17: error: stray ‘5’ in program

Como posso resolver este problema?

    
por Zahid 26.03.2013 / 18:56

3 respostas

11

O problema é que você tem aspas Unicode em vez de aspas ASCII; Provavelmente, seu editor as alterou automaticamente ou copiou o texto de um site que faz isso automaticamente em seu software de criação. Substitua as aspas por aspas normais ASCII (0x22, ") e deve funcionar.

Fonte fixa:

#include <stdio.h>
int main()
{
    printf("Hello World\n");
    return 0;
}
    
por Krzysztof Kosiński 26.03.2013 / 19:03
2

Você está colocando sua string no tipo errado de aspas.

Você tem:

"Hello World\n"

Você deve ter:

"Hello World\n"

Enquanto as aspas que você usou são semelhantes, elas não são reconhecidas por um compilador C como encerrando uma string. Assim, você obtém mensagens de erro sobre caracteres Unicode não reconhecidos e obtém mensagens de erro que mostram que o conteúdo da string está sendo interpretado como código de programa sem aspas.

Você notará que as aspas que você usou têm caracteres separados para o início e o término de uma cotação (eles são curvados da mesma forma que as citações são compostas). Muitos processadores de texto - como Jobin sugerido - transformam automaticamente as simples " citações em tais aspas extravagantes. Se você estiver usando um processador de texto para compor programas em C, deverá usar um editor de texto.

O Ubuntu vem com gedit instalado por padrão (embora também haja muitos outros editores de texto para escolher). Como muitos editores de texto, gedit fornece realce de sintaxe para muitas linguagens de programação, incluindo C (texto diferente em seu programa será mostrado em cores diferentes para significar seu significado), que é um recurso útil e torna um editor de texto muito mais conveniente e fácil de usar para programação do que um processador de texto.

Isto pode ser específico do Ubuntu, se você está acostumado a um editor de texto em outra plataforma que reduz automaticamente aspas coladas para a versão não-fantasia. Mas essa questão pode acabar sendo fechada e migrada para o estouro de pilha .

    
por Eliah Kagan 13.04.2017 / 14:24
1

Você pode usar o comando sed para corrigir esses problemas.

Isso fornecerá uma prévia rápida do que será substituído.

sed -re 's/”|“/"/g' File.txt

Isso fará as substituições e colocará a substituição em um novo arquivo chamado WithoutSmartQuotes.txt :

sed -re 's/”|“/"/g' File.txt > WithoutSmartQuotes.txt

Isso substituirá o arquivo original:

sed -i .bk -re 's/”|“/"/g' File.txt
    
por cokedude 13.11.2014 / 14:36

Tags