У меня возникли трудности с компиляцией написанной мной программы на C ++.
Эта программа очень проста и, насколько мне известно, соответствует всем правилам, изложенным в стандарте C ++. Я перечитал весь ISO / IEC 14882: 2003 дважды, чтобы быть уверенным.
Программа выглядит следующим образом:
Вот вывод, который я получил при попытке скомпилировать эту программу с помощью Visual C ++ 2010:
c:\dev>cl /nologo helloworld.png
cl : Command line warning D9024 : unrecognized source file type 'helloworld.png', object file assumed
helloworld.png : fatal error LNK1107: invalid or corrupt file: cannot read at 0x5172
Встревоженный, я попробовал g ++ 4.5.2, но это было одинаково бесполезно:
c:\dev>g++ helloworld.png
helloworld.png: file not recognized: File format not recognized
collect2: ld returned 1 exit status
Я полагал, что Clang (магистраль версии 3.0 127530) должен работать, поскольку он так высоко ценится за соответствие стандартам. К сожалению, это даже не дало мне одно из его красивых, выделенных сообщений об ошибках:
c:\dev>clang++ helloworld.png
helloworld.png: file not recognized: File format not recognized
collect2: ld returned 1 exit status
clang++: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation)
Если честно, я не знаю, что означают эти сообщения об ошибках.
Многие другие программы на C ++ имеют исходные файлы с расширением .cpp , поэтому я подумал, что, возможно, мне нужно переименовать мой файл. Я изменил его имя на helloworld.cpp , но это не помогло. Я думаю, что в Clang есть очень серьезная ошибка, потому что когда я пытался использовать ее для компиляции переименованной программы, она выскочила, напечатав «84 предупреждений и 20 сгенерированных ошибок». и заставил мой компьютер много гудеть!
Что я здесь не так сделал? Я пропустил какую-то критическую часть стандарта C ++? Или все три компилятора действительно настолько сломаны, что не могут скомпилировать эту простую программу?
источник
Первоначально из Overv @ Reddit .
источник
Попробуйте так:
источник
Ваши
<
и>
,(
и)
,{
и}
, кажется, не очень хорошо совпадают; Попробуйте нарисовать их лучше.источник
}
проблема возникла именно у вас. Попробуйте сосредоточиться на сопоставлении этого с{
Вы можете попробовать следующий скрипт Python. Обратите внимание, что вам нужно установить PIL и pytesser .
Чтобы использовать это, сделайте:
источник
Вы забыли использовать Comic Sans в качестве шрифта, поэтому его ошибка.
источник
Я не вижу новой строки после этой последней скобки.
Как вы знаете: «Если исходный файл, который не является пустым, не заканчивается символом новой строки, ... поведение не определено».
источник
Эта программа действительна - я не могу найти ошибок.
Я думаю, у вас есть вирус на вашей машине. Было бы лучше, если вы переформатируете свой диск и переустановите операционную систему.
Дайте нам знать, как это работает, или если вам нужна помощь с переустановкой.
Я ненавижу вирусы.
источник
Я обнаружил, что это помогает не писать мой код на стекле моего монитора с помощью волшебного маркера, даже если он выглядит действительно черным. Экран заполняется слишком быстро, и тогда люди, которые дают мне чистый монитор, называют меня именами каждую неделю.
Пара моих сотрудников (я менеджер) собиралась купить мне один из этих красных компьютеров с кнопками. Они сказали, что мне не понадобятся маркеры, и я могу самостоятельно почистить экран, когда он заполнится, но я должен быть осторожен, встряхивая его. Я предполагал, что это так деликатно.
Вот почему я нанимаю умных людей.
источник
File format not recognized
Вам нужно правильно отформатировать ваш файл. Это означает использование правильных цветов и шрифтов для вашего кода. Смотрите конкретные документы для каждого компилятора, так как эти цвета варьируются в зависимости от компилятора;)источник
Вы забыли препроцессор. Попробуй это:
источник
Вы написали программу от руки, а затем отсканировали ее в компьютер? Это то, что подразумевается под "helloworld.png". Если это так, вы должны знать, что стандарт C ++ (даже в его новейшей редакции) не требует наличия оптического распознавания символов, и, к сожалению, он не включен в качестве дополнительной функции в любой текущий компилятор.
Вы можете рассмотреть вопрос о переносе графики в текстовый формат. Любой текстовый редактор может быть использован; использование текстового процессора, способного генерировать красивые распечатки, скорее всего, приведет к той же ошибке, что и вы, пытаясь сканировать.
Если вы действительно любите приключения, вы можете попытаться написать свой код в текстовом редакторе. Распечатайте его, желательно с помощью шрифта, например OCR-A . Затем возьмите распечатку и отсканируйте ее обратно. Затем можно выполнить сканирование с помощью стороннего пакета OCR для создания текстовой формы. Текстовая форма может быть скомпилирована с использованием одного из множества стандартных компиляторов.
Остерегайтесь, однако, больших затрат бумаги, которые она понесет на этапе отладки.
источник
Нарисуйте включаемый файл ниже, чтобы он скомпилировался:
Я слышал, что он может компилировать синтаксические ошибки ...
источник
#include <JonSkeet>
.К сожалению, вы выбрали три компилятора, которые поддерживают несколько языков, а не только C ++. Все они должны угадать, какой язык программирования вы использовали. Как вы, наверное, уже знаете, формат PNG подходит для всех языков программирования, а не только для C ++.
Обычно компилятор может выяснить сам язык. Например, если PNG явно нарисован мелками, компилятор будет знать, что он содержит Visual Basic. Если он выглядит так, как будто он нарисован механическим карандашом, легко узнать инженера на работе, пишущего код на языке FORTRAN.
Этот второй шаг также не помогает компилятору, в этом случае. C и C ++ выглядят слишком похоже, вплоть до
#include
. Следовательно, вы должны помочь компилятору решить, какой это на самом деле язык. Теперь вы можете использовать нестандартные средства. Например, компилятор Visual Studio принимает аргументы командной строки / TC и / TP , или вы можете использовать опцию «Компилировать как: C ++» в файле проекта. GCC и CLang имеют свои собственные механизмы, которые я не знаю.Поэтому я бы рекомендовал вместо этого использовать стандартный метод, чтобы сообщить компилятору, что следующий код написан на C ++. Как вы уже обнаружили, компиляторы C ++ очень требовательны к тому, что они принимают. Поэтому стандартным способом идентификации C ++ является использование программистами запугивания в своем коде C ++. Например, следующая строка разъяснит вашему компилятору, что ниже следует C ++ (и он лучше скомпилирует его без нареканий).
источник
#pragma
был правильный способ «получить сообщение» компилятору?Попробуй это:
источник
endl
(L), а неend1
(один). Но +1 красиво сделано!Ваш компилятор установлен в экспертном режиме ?! Если да, он не должен компилироваться. Современные компиляторы устали от "Hello World!"
источник
OCR говорит:
Что чертовски хорошо, если быть честным.
источник
Очевидно, вы должны отформатировать жесткий диск.
На самом деле, эти ошибки не так сложно прочитать.
источник
Я конвертировал вашу программу из PNG в ASCII, но она еще не компилируется. К вашему сведению, я пробовал с шириной строки 100 и 250 символов, но оба дают сравнимые результаты.
источник
Первая проблема заключается в том, что вы пытаетесь вернуть неправильное значение в конце основной функции. Стандарт C ++ диктует, что тип возвращаемого значения main () - int, но вместо этого вы пытаетесь вернуть пустой набор.
Другая проблема - по крайней мере с g ++ - в том, что компилятор выводит язык, используемый из суффикса файла. Из g ++ (1):
Их исправление должно оставить вас с полностью работающим приложением Hello World, как видно из демонстрации здесь .
источник
Ваш шрифт отстой, как парсер сможет это прочитать? Пройдите курс каллиграфии.
источник
Ваши компиляторы ожидают ASCII , но эта программа, очевидно, написана с использованием EBCDIC .
источник
Вы пытаетесь скомпилировать изображение.
Напечатайте то, что вы написали от руки, в документе с именем main.cpp, запустите этот файл через ваш компилятор, затем запустите выходной файл.
источник
Вам нужно указать точность вашего вывода, которому предшествует двоеточие непосредственно перед последней закрывающей скобкой . Поскольку вывод не является числовым, точность равна нулю, поэтому вам нужно это-
: 0}
источник
Добавить :
сразу после включения: P: D
источник
std
все время. Напоминает мне, чтобы не получить один.Кажется, ваш компилятор не поддерживает файлы в такой хмм ... кодировке. Попробуйте преобразовать его в ASCII.
источник
Проблема заключается в определении синтаксиса, попробуйте использовать линейку и компас для более классического описания!
Ура,
источник
Попробуйте переключить интерфейс ввода. C ++ ожидает, что клавиатура будет подключена к вашему компьютеру, а не сканер. Здесь могут быть проблемы конфликта периферийных устройств. В стандарте ISO я не проверял, является ли интерфейс ввода с клавиатуры обязательным, но это верно для всех компиляторов, которые я когда-либо использовал. Но, возможно, вход для сканера теперь доступен в C99, и в этом случае ваша программа действительно должна работать. Если нет, вам придется ждать следующего стандартного выпуска и обновления компиляторов.
источник
Вы можете попробовать разные цвета для скобок, может быть, немного зеленого или красного поможет? Я думаю, что ваш компилятор не может распознать черные чернила: P
источник
Я единственный, кто не может распознать символ между «возвращением» и точкой с запятой? Это может быть так!
источник