Ошибка BGI, как ее решить?

Я хочу запустить программу на C, которая рисует круг. Программа компилируется без ошибок и работает. После получения от пользователя таких значений, как радиус, я получаю следующую ошибку:

BGI error: Graphics not initialized ( use "initgraph")

Хотя в моем исходном коде я добавил эту строку:

int gmode,gdrive=DETECT;
initgraph(&gdrive,&gmode,"c\\tc\\bgi");

Тем не менее я получаю сообщение об ошибке.

Я использую Windows, и я не мог понять, где я ошибся. Может ли кто-нибудь помочь мне в этом отношении?

Заранее спасибо.


person sriram    schedule 30.09.2011    source источник
comment
C:\\tc\\bgi вы имеете в виду этот путь, верно?   -  person Jesus Ramos    schedule 30.09.2011
comment
@JesusRamos О, я новичок в C-графике, поэтому я не уверен. Так каков правильный путь?   -  person sriram    schedule 30.09.2011
comment
В Windows ваш путь начинается с Drive:\\path\\to\\folder если вам нужна его буквальная строка   -  person Jesus Ramos    schedule 30.09.2011
comment
Ты просто скопировал это, не исправив? stackoverflow.com/questions/3316337/c -программа-линия-не-рисование/   -  person Hans Passant    schedule 30.09.2011
comment
@HansPassant: Да, если честно. Так как я новичок думал, что это правильно.   -  person sriram    schedule 30.09.2011
comment
@HansPassant Вау, это настоящая находка.   -  person Jesus Ramos    schedule 30.09.2011
comment
@Jesus, спасибо OP за то, что он проголосовал за него сегодня. Не для чтения :)   -  person Hans Passant    schedule 30.09.2011


Ответы (6)


Ваш путь в initgraph неверен. Вместо этого используйте "c:\\tc\bgi".

person Jesus Ramos    schedule 30.09.2011
comment
Обратная косая черта должна быть экранирована в литералах. - person Alexey Frunze; 30.09.2011
comment
@Alex Да, я забыл, что разметка здесь искажает обратную косую черту (вы должны использовать 4, чтобы получить 2) спасибо - person Jesus Ramos; 30.09.2011
comment
в противном случае скопируйте содержимое папки BGI в папку BIN. - person Khaled Rakhisi; 16.04.2021

Попробуйте это (у меня сработало):

Папка BGI обычно находится по следующему пути:

C:\TurboC++\диск\TurboC3\BGI

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

initgraph(&gd, &gm, "C:\\TurboC3\\BGI");
person Theja    schedule 09.09.2013

Я тоже страдал от этой проблемы.

Проще говоря эту строку:

initgraph(&gdrive,&gmode, "c:\tc\bgi"); 

здесь c:\tc\bgi важно.

САМОЕ ВАЖНОЕ:

В tc.exe (который вы используете) вверху есть несколько меню, таких как файл, редактирование, параметры:

  • Перейдите в опции>приложение
  • выберите наложение (по умолчанию это «стандарт», но вы должны выбрать вариант «наложение»), затем нажмите «ОК».
  • теперь вы запускаете свою графическую программу.

ПРИМЕЧАНИЕ: в выводе, если он выдает ошибку о bgi, игнорируйте его, просто дайте ввод для программы, если это требуется, и она выдаст вам графический вывод . Наслаждаться.

person montej    schedule 15.09.2012

Если вы получаете это сообщение об ошибке при запуске графической программы: BGI Error: Graphics not initialized (use 'initgraph')

Просто вам нужно скопировать файл \tc\bgi\EGAVGA.BGI в локальную папку, где вы запускаете приложение.

person Gautam Jangra    schedule 20.01.2013
comment
другие решения не сработали, но это сработало для меня, запустив turbo C++ в dosbox на max os high sierra - person James Cat; 13.01.2020

Причин может быть несколько:

  • неправильный путь к файлу bgi (я вижу двоеточие отсутствует)
  • неподдерживаемый графический режим (не ожидайте, что графические приложения DOS будут работать под Vista и выше)
person Alexey Frunze    schedule 30.09.2011

если при включении "C:\tc\bgi" ошибка по-прежнему сохраняется, попробуйте следующее: перейти к файлу-> изменить каталог.. изменить его на bgi.. но это нужно делать каждый раз, когда вы открываете turboc

person payal    schedule 02.03.2014