Как исправить ошибки компиляции, в которых упоминаются "случайный" \ 342 "и" случайный "\ 200"? [closed]

Я написал эту программу:

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

Я сохранил ее как first.c и пытался скомпилировать, но, столкнувшись с этой проблемой, я установил даже компилятор 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

Как я могу решить эту проблему?

9
задан 20 July 2017 в 15:52

3 ответа

Проблема в том, что у вас есть кавычки в Юникоде вместо кавычек в ASCII; возможно, ваш редактор автоматически изменил их, или вы скопировали текст с сайта, который делает это автоматически, в своем авторском программном обеспечении. Замените кавычки на обычные кавычки ASCII (0x22, "), и они должны работать.

Исправлен источник:

#include <stdio.h>
int main()
{
    printf("Hello World\n");
    return 0;
}
0
ответ дан 20 July 2017 в 15:52

Вы заключаете свою строку в неправильные цитаты.

У вас есть:

“Hello World\n”

Вместо этого вы должны иметь:

"Hello World\n"

Хотя используемые вами кавычки выглядят одинаково, они не распознаются компилятором C как включающие строка. Таким образом, вы получаете сообщения об ошибках о нераспознанных символах Unicode, и вы получаете сообщения об ошибках, показывающие, что содержимое строки интерпретируется как не заключенный в кавычки программный код.

Вы заметите, что используемые вами кавычки имеют отдельные символы для начала и окончания кавычки (они изогнуты так, как часто набираются кавычки). Многие текстовые процессоры, как предложил Джобин , автоматически превращают простые " цитаты в такие причудливые кавычки. Если вы используете текстовый процессор для написания программ на С, вам следует использовать вместо этого текстовый редактор.

Ubuntu поставляется с gedit, установленным по умолчанию (хотя есть и другие текстовые редакторы на выбор). Как и многие текстовые редакторы, gedit обеспечивает подсветку синтаксиса для многих языков программирования, включая C (поэтому разный текст в вашей программе будет отображаться разными цветами для обозначения его значения), что является удобной функцией и делает текстовый редактор гораздо более удобный и удобный для программирования, чем текстовый процессор.

Это может быть связано с Ubuntu, если вы привыкли к текстовому редактору на другой платформе, который автоматически сокращает вставленные кавычки до необычной версии. Но этот вопрос может оказаться закрытым и перенесенным в Переполнение стека .

0
ответ дан 20 July 2017 в 15:52

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

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

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

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

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

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

sed -i .bk -re 's/”|“/"/g' File.txt
.
0
ответ дан 20 July 2017 в 15:52

Другие вопросы по тегам:

Похожие вопросы: