Форум: Форум C++Разное
Новые темы: 00
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: GNU C++ для Windows XP
 
 автор: taax   (26.01.2008 в 13:02)   письмо автору
 
 

Здраствуйте ! Хочу попросить Вас помочь мне начать изучения языка С++. В наличае я имею книгу "С++ для чайников" 4-е издание Стефан Р. Дэвис. По ходу изучения языка С++ в данной книге я сразу же столкнулся с первой проблемой: Если я не ошибаюсь то данная книга предназначена для системы GNU C++? У меня ХР Майкросфт. Я незнаю где можно скачатьGNU C++ и подойдёт ли она под ХР? А возможно заменить GNU C++ на Borland C++ builder или Visual C++, и если можно то где можно скачать по изучении Borland C++ builder или Visual C++, для дальнеёшего изучения С++ ??????? Я практически незнаком ни с С ни с С++.Посоветуйте что нужно делать и с чего начинать человеку который только начинает изучении прогораммирования и С++.Пожалуйста помогите мне в выборе оптимальной программы для изучения С++ (нужной)............заранее спасибо Вам !!!

  Ответить  
 
 автор: cheops   (26.01.2008 в 13:20)   письмо автору
 
   для: taax   (26.01.2008 в 13:02)
 

>GNU C++ для Windows XP
Вы можете ориентироваться на Dev-C++ - это порт компилятора GNU под Windows.

При изучении языка вы можете ориентироваться на любую из сред разработки - язык везде одинаковы, разные библиотеки, а также порядок сборки и компиляции программ. Если вы выберете Builder С++ или Visual С++ и у вас возникнут какие-то вопросы, вы можете смело обращаться на этот форум. Я так понимаю вы сейчас изучаете чистый C++ (без привязки к графическим библиотекам)? Тут подойдёт любая среда - каждая из них позволяет создавать консольные проекты.

  Ответить  
 
 автор: Марат   (29.11.2008 в 01:38)   письмо автору
 
   для: cheops   (26.01.2008 в 13:20)
 

Я тоже учусь по этой книге, возникла следующая проблема:
В unixе я работать не умею, поэтому пользуюсь Dev-C++. Создал (вернее перепечатал) программу, скомпилировал ее (было написано, что компиляция прошал успешно), ввел значение, окно закрылось. А вот дальше нужно открыть окно с получившимся результатом (в книге написано нажать Alt+F5, но, видимо, "горячие клавиши" в GNU C++ и Dev-C++ не совпадают), а сделать это не удается. Помогите, кто может. Заранее благодарен!!!

  Ответить  
 
 автор: cheops   (29.11.2008 в 14:55)   письмо автору
 
   для: Марат   (29.11.2008 в 01:38)
 

Вы можете поставить в конце system("pause"); - тогда окно не закроется, пока вы не нажмете любую клавишу.

http://www.softtime.ru/cpp/read.php?id_forum=2&id_theme=32

  Ответить  
 
 автор: Марат   (29.11.2008 в 20:27)   письмо автору
 
   для: cheops   (29.11.2008 в 14:55)
 

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

  Ответить  
 
 автор: exp   (29.11.2008 в 22:48)   письмо автору
 
   для: Марат   (29.11.2008 в 20:27)
 

можно сделать попроще,
В DevCpp есть
Сервис->Настройка инструментов-> ....

Там например я добавил такой инструмент

Заголовок : CMD
Программа: cmd
Рабочий каталог: <PROJECTPATH>
Параметры: /k <EXENAME>
"Две последних строки можно выбрать из доступных макросов"

И появилось меню Сервис->CMD
Нажав, запустите толькочто скомпилированный файл из коммандной строки
, и окно не закроется

Для того чтобы выходить по нажатию любой кнопки сделаите такие параметры

/k <EXENAME> & pause & exit

быструю кнопку не нашёл как добавить, и возможно что пробелы в путях к файлу могут помешать и нужно будет тогда что-то думать с двойными кавычками

  Ответить  
 
 автор: Марат   (30.11.2008 в 10:07)   письмо автору
 
   для: exp   (29.11.2008 в 22:48)
 

Спасибо, но мне больше понравилось system("pause");

  Ответить  
 
 автор: Марат   (30.11.2008 в 13:03)   письмо автору
 
   для: Марат   (30.11.2008 в 10:07)
 

А с кодировками кто-нибудь может помочь?

  Ответить  
 
 автор: ddhvvn   (30.11.2008 в 14:53)   письмо автору
 
   для: Марат   (30.11.2008 в 13:03)
 

Юзайте (найдите/напишите) функцию перекодировки DOS=>WIN1251. и выводите текст через нее в ДОС приложениях.

  Ответить  
 
 автор: Марат   (01.12.2008 в 12:31)   письмо автору
 
   для: ddhvvn   (30.11.2008 в 14:53)
 

Извините, но можно по-подробнее, словом, как "для тупых". Очень нужно!!!

  Ответить  
 
 автор: exp   (01.12.2008 в 22:32)   письмо автору
 
   для: Марат   (01.12.2008 в 12:31)
 

мне кажется что почтенный ddhvvn хотел объяснить что консольные окна в виндоус могут отображать русский алфавит
, только для этого нужно чтобы текст выводимых данных в программе был написан в кодировке cp866,
называемой DOS-кодировкой.
редакторы во многих компиляторах работают только сохраняя текст в кодировке cp1251.
Если сильно нужно , можно перед тем как компилировать, перекодировать текст,
например есть такой редактор AkelPad, просто перед компиляцией открыть им исходные файлы и "сохранить как cp866",
примерно такая есть опция в нём.
Или примерно так-же как в этой теме было написано про кнопку вызывающую cmd.exe ,
добавить кнопку , которая будет вызывать простенькую програмку, например на C,
даже можно сделать Bat-файл, всего только нужно прочитать, заменить 33 одних байта 33мя другими
, или забыл сколько букв в алфавите :), и записать файл.
Но cp866 позволяет рисовать в тексте всякие рамочки, закрашивать , ...
как koi8r (она-же cp20866) кажется тоже.
а такой подход с перекодировкой сильно затруднит рисование в редакторе :)
и по этому никто не торопится делать такую программку :)

Заставить редактор DevCpp сохранять файл в нужной кодировке, если и можно, то для этого придётся перекомпилировать DevCpp.exe, который ещё и видно упакован каким-то exe-упаковщиком
, а исходный код пока ещё не видел :), может быть даже он открыто распостраняется

  Ответить  
 
 автор: exp   (04.12.2008 в 11:25)   письмо автору
 
   для: Марат   (01.12.2008 в 12:31)
 

Случайно получился тут такой код ,) который выводит все символы, и их hex-значения
main() {
unsigned i, p;
unsigned char linebuf[17];

        for( p = 0, i = 0; p < 256; p++ )
        {
            linebuf[i++] = p;
            printf"%.2x ", p );
            if( i == 16 )
            {
                linebuf[i] = '\0';
                printf" %16s\n", linebuf );
                i = 0;
            }
        }
getch();
}

Интересно что компилируется в DevCpp даже так, без указания заголовочных файлов , stdio.h, conio.h ....
(Если в настройках C-компилятора стоит "Поддержка стандартных ANSI-программ==No")

Но всётаки есть то что мне не нравится с этим gcc-компилятором,)
то что у компиляторов, чтобы вставить ассемблерный код в С-программу , делается просто
_asm{
здесь простой код с intel-синтаксисом (если правильно называю)
}
на GCC используется какой-то AT&T-синтаксис ассемблера
http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html -здесь об этом по английски
и какойто он неудобный этот синтаксис

  Ответить  
 
 автор: GeorgeIV   (04.12.2008 в 14:46)   письмо автору
 
   для: exp   (04.12.2008 в 11:25)
 

А чем Visual Studio не устраивает?

  Ответить  
 
 автор: exp   (04.12.2008 в 18:03)   письмо автору
 
   для: GeorgeIV   (04.12.2008 в 14:46)
 

У меня его пока нету , и не разу даже не видел что это такое ;)
Купил диск с 2003им кажется, других не нашёл в то время, а там несколько cab-архивов не хотят распаковаться,
обошёл чтобы не просило вставить диск, ещё другие cab'ы упёрлись, как-раз из основных каких-то.
PlatformSDK только установил , из интернета , три ночи качал по GPRS ;)

И так компилируются некоторые программки , если долго колдовать над коммандной строкой
, и вызывать программы из папки , куда установилось что-то похожее на .NET SDK
:) в магазин никак не доеду , должно-бы появиться наверное это 2008

  Ответить  
 
 автор: GeorgeIV   (04.12.2008 в 19:00)   письмо автору
 
   для: exp   (04.12.2008 в 18:03)
 

Вообще то, если канал позволяет, можно скачать официальную версию с сайта Микрософт. Я так скачивал и работаю на легальной копии.

  Ответить  
 
 автор: exp   (09.12.2008 в 18:39)   письмо автору
 
   для: GeorgeIV   (04.12.2008 в 19:00)
 

Это мне надо не спать неделями , чтобы скачать такой объём,)
Вспомнил тут одно обстоятельство , почему не всё хорошо то что в DevCpp,
Если хотябы просто написать программу
#include <здесь забыл какое слово>
using namespace std;
main()
{
cout << "HelloWorld" <<endl;
}
то exe-файл получается размером не меньше 0.2M
VC вроде должно получиться что-то около 6-и килобайт, хотя точно не скажу.

Нашёл как-то случайно сайт на котором можно было ввести в форме (в которой уже даже написано почти то-же) код и посмотреть результаты компиляции разными компиляторами, там такая-же разница в результатах при выборе gcc и vc получалась , но сколько нее пытался спустя пару дней найти этот адрес , так и не смог, помню только пару слов типа Compiler Compiliance в заголовке жирными буквами, и что небольшая такая страничка, мучал Гугля, не колется .)
И приходится стараться писать printf("HelloWorld\n") ;)

  Ответить  
 
 автор: DreamMaster   (15.10.2009 в 00:27)   письмо автору
 
   для: GeorgeIV   (04.12.2008 в 14:46)
 

Вот у меня Есть Visual Studio, но там можно создать лиюо проект либо отдельный файл, откуда следуют 2 пути:

1) если создавать проект, то там куча разных файлов образовывается, ещё вопрос какой именно проект выбирать там их тьма тьмущая... И если создаёшь то там сразу что то написано в файле *.cpp так что непонятно куда писать саму прогу...

2)если создавать отдельный файл *.cpp то его нельзя скомпилировать =((( не получается, да ещё и ошибки вылетают =(

Вот например текст:
//Fahrenheit = NCelsius * (212 - 32)/100 + 32
//
#include <stdio.h>
#include <iostream.h>
int main (int nNumberofArgs, char * pszArgs [ ] )
{ //Программа для преобразования
// градусов Цельсия в градусы Фаренгейта:
int nNCelsius;
cout <<"Введите температуру по Цельсию: ";
cin >> nNCelsius;
int nNFactor = 212 - 32;
int nFahrenheit = nNFactor * nNCelsius/100 + 32;
cout << "Температура по Фаренгейту: ";
cout << nFahrenheit;
return 0;
}

Работаает на DEV-C++ если дописать system("pause");
Если же такое написать в Visual Studio то вылетают ошибки о:

неизвестной iostream.h
неизвестной cin и т.д.

помогите если можете как данную прогу написать в Visual Studio 2008 и так чтобы потом можно было откомпилировать нормально...

  Ответить  
 
 автор: exp   (16.10.2009 в 19:09)   письмо автору
 
   для: DreamMaster   (15.10.2009 в 00:27)
 

Точно сейчас уже не уверен, что будет работать (настройки все попеределывал однажды, а оказалось что восстановление сохранённых настроек не совсем функционирует)
но должно работать
Файл->Создать->Проект
Выбираю Win32 -> Консольный проект
затем убираю галочку с "использовать предкомпилированные заголовки"
и ставлю галочку на "пустой проект"
Проект создаётся
Далее на папке проекта "Файлы исходного кода" Вызываю из контекстного меню "Добавить->Создать элемент"
Создаю пустой файл main.cpp
и потом в вашем коде нужно из #include вставить только один
#include <iostream>
и ниже дописать
using namespace std;
и всё . Потом построение->Перестроить проект
всё компилируется, запустить можно из Отладка->Начать отладку
, если поставить брэкпоинт на строчке с return , можно не писать system('pause');

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

  Ответить  
 
 автор: cukakesha   (22.10.2009 в 15:35)   письмо автору
 
   для: Марат   (29.11.2008 в 01:38)
 

ЙО МаЙО, ПАпробуй сделать так
ВВодишь после int main() {
float c;
а потом в конце cin>>c;
return 0;
}
а че,мне помогло!

  Ответить  
 
 автор: NoNA   (05.10.2009 в 21:20)   письмо автору
 
   для: cheops   (26.01.2008 в 13:20)
 

Приветствую всех. Я как нестрано тоже учусь по этой книге... Нашёл на вашем форуме порт Dev-C++, срисовал с книги программу про всё те же градусы... У меня такая проблема: Вылезает 2 окна,1ое где черный фон (вероятно куда нужно вводить значения),2ое серый фон (вероятно должен быть ответ),однако в 1ое окно ничего не вводиться... В чём проблема? Скомпелировалось все чётко,без ошибок.

  Ответить  
 
 автор: cheops   (06.10.2009 в 23:50)   письмо автору
 
   для: NoNA   (05.10.2009 в 21:20)
 

Под новый вопрос лучше завести все-таки отдельную тему и прикрепить файл с текстом программы, чтобы можно было воспроизвести ситуацию.

  Ответить  
 
 автор: Skapanskiy   (12.11.2012 в 08:17)   письмо автору
 
   для: cheops   (26.01.2008 в 13:20)
 

удаленно

  Ответить  
 
 автор: phoenix   (21.02.2009 в 17:31)   письмо автору
 
   для: taax   (26.01.2008 в 13:02)
 

Привет! Вот у меня маленький вопросик: эта книга "С++ для чайников" насколько она хорошая и как она вам помогла? Я тоже ее приобрел и хочу сразу узнать поможет она или нет

  Ответить  
 
 автор: exp   (05.06.2009 в 21:12)   письмо автору
 
   для: phoenix   (21.02.2009 в 17:31)
 

Поторопился со вставками asm кода, и
оказалось компилируется ,) например такой код
main() {
char *buf = "Строка";

 __asm__ ("push esi \n\
         mov esi, %0"
::"m"(buf));
 __asm__ ("push 1 \n\
         push esi \n\
         push esi \n\
         push 0 \n"

         "call _MessageBoxA@16 \n"
         "xor eax,eax\n\
         pop esi"

         );
printf("%s\n", buf);
getch();
putch(7); //  символ 0x07
}

так-же вез #include`sов
только нужно кроме кроме выключения
"Проект-параметры-Компилятор-Компилятор С-поддержка стандартных ..."
ещё добавлять строку -masm=intel ? там где
"Проект-параметры-Параметры-'Компилятор'"

непонятно почему кроме messageboxёа ничего не показывает :) но работает
но хоть понять можно попробовать чего получается , если такой C:\Dev-Cpp\bin\gcc -S -masm=intel byte.c строкой всё в byte.s перегонять
А VS поставил всётаки, но никакого там C у меня почемуто , одно Cpp :)

  Ответить  
 
 автор: GeorgeIV   (08.06.2009 в 10:59)   письмо автору
 
   для: exp   (05.06.2009 в 21:12)
 

А VS поставил всётаки, но никакого там C у меня почемуто , одно Cpp :)

Там все есть. Как компилировать, как С или С++ сам задаешь в опциях проекта.

  Ответить  
 
 автор: Slavec56   (24.03.2010 в 22:42)   письмо автору
 
   для: taax   (26.01.2008 в 13:02)
 

Короче, попробуй юзать Virtual Box в качестве линукса =)

  Ответить  
 
 автор: cheops   (07.11.2011 в 13:11)   письмо автору
 
   для: taax   (26.01.2008 в 13:02)
 

Новый вопрос про ошибки компиляции перенесены в новую тему. Пожалуйста заводите новые темы под новые вопросы.

  Ответить  
 
 автор: KernelPanic   (20.06.2012 в 15:29)   письмо автору
 
   для: cheops   (07.11.2011 в 13:11)
 

Компилирую исходник примерно такой командой: gcc -s hello.c -o hello.exe
Что в данном случае означает ключ -s(s - маленькая).
Догадываюсь, что это strip.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования