Титла: C++ Editor/compilator Публикувано от: tin4o в Nov 20, 2008, 12:24 Здравейте,
Трябва ми да намправя малък декодер bin->hex->dec на c++ под linux , но понеже не съм запознат с linux незнам от къде да зема едитор/компилатор за c++ Мерси предварително --zeridon преведено Титла: Re: C++ Editor/compilator Публикувано от: zeridon в Nov 20, 2008, 12:43 В линукс компилаторът е gcc
за убунту Код: sudo apt-get install build-essentials Хубав редактор (поне за мен) е Quanta++ Относно кирилицата: 1) горе до полето за заглавието има един бутон OFF цъкни го ... ще стане на PHO и ще ти помогне 2) http://www.linux-bg.org/forum/index.php?topic=22731.msg142667#msg142667 (последното съобщение в темата) 3) http://www.linux-bg.org/forum/index.php?topic=19612.0 Титла: Re: C++ Editor/compilator Публикувано от: ANTIADMIN в Nov 20, 2008, 12:50 или geany :)
Титла: Re: C++ Editor/compilator Публикувано от: tin4o в Nov 20, 2008, 14:27 Справих се с Phonetic и Благодаря за изчерпателния отговор
Quantia plus ли имаш в предвид : http://quanta.kdewebdev.org/releases.php Титла: Re: C++ Editor/compilator Публикувано от: task_struct в Nov 20, 2008, 14:28 Ако искаш програмата ти да е с графичен интерфейс ти препоръчвам Qt Creator или Qt Designer. За конзолна програма може да го напишеш на всеки текстов редактор (KWrite, Kate, GEdit - всичките поддръжат оцветяване на C++ код). Също така конзолния редактор Vim е много добър и удобен :)
Qt Creator или Qt Designer правят собствени Makefile-ове за да компилира проекта просто изпълняваш Makefile-а. Ако пишеш на текстов рекатор и програмата е от един файл. Код
Титла: Re: C++ Editor/compilator Публикувано от: zeridon в Nov 20, 2008, 17:29 Справих се с Phonetic и Благодаря за изчерпателния отговор Да нея имах предвид Титла: Re: C++ Editor/compilator Публикувано от: Whisper в Nov 20, 2008, 21:18 Докато сме по темата: Студент съм КСТ, ако някои го е завършил може ли да ми каже какви програми ще ми трябват за да заменя уйндоуските с които работим?
И 2-ро: някаква библиотека която да замести conio.h? Или по точни функции подобни на clrscr() и getch(), ако може да е съвместима и с уйн и с лин... Титла: Re: C++ Editor/compilator Публикувано от: task_struct в Nov 21, 2008, 08:51 conio.h няма аналог в Линукс.
Иначе ncurces е библиотека за конзолна графика. На нея е писан mc :) Там има getch(), прeдполагам, че има аналог и на clrscr(). За съжаление не върви под Windows :( Титла: Re: C++ Editor/compilator Публикувано от: Nikolavp в Nov 21, 2008, 09:46 http://linux.die.net/man/3/getch
http://linux.die.net/man/3/curs_clear ЕДИТ: сега видях, че искаш да е portable - в такъв случай може би http://pdcurses.sourceforge.net/ е по добрия вариант(по голямата част от API-то трябва да е същото. Винаги обаче можеш да си напишеш твоя импелементация на clear, която да върви на платформите ако не искаш да линкваш цяла библиотека. Титла: Re: C++ Editor/compilator Публикувано от: Whisper в Dec 04, 2008, 16:15 Отново по темата: използвам gcc, но не ми признава по никакъв начин въвеждане на букви от клавиатурата. Нито scanf("%c", ch), нито getcar(), нито gets(). Не дава грешка при компилация, но при изпълнение просто прескача тези редове.
Титла: Re: C++ Editor/compilator Публикувано от: v_badev в Dec 04, 2008, 17:27 Не се ли пише "scanf("%c", &ch);"?
Титла: Re: C++ Editor/compilator Публикувано от: Whisper в Dec 04, 2008, 18:42 Правописна грешка. Не съм го объркал в програмата. Но дори и да го сбъркам просто няма да променя ch, а не да пропусне целият scanf()
Титла: Re: C++ Editor/compilator Публикувано от: tarator в Dec 04, 2008, 18:48 Ако пропуснеш & най-вероятно ще изгърми програмата. Какво означава "прескача редовете"? Как пускаш програмата? Какво очакваш да се случи? Какво се случва в действителност? :)
Титла: Re: C++ Editor/compilator Публикувано от: glarus в Dec 04, 2008, 18:52 Правописна грешка. Не съм го объркал в програмата. Но дори и да го сбъркам просто няма да променя ch, а не да пропусне целият scanf() Можеш ли да публикуваш примерен код, който при тебе не работи както трябва ? Както и резултата от изпълнението му. Титла: Re: C++ Editor/compilator Публикувано от: gat3way в Dec 04, 2008, 19:22 scanf("%c", ch);
може да бъде съвсем валидно и работещо нещо. Всичко зависи от типа на ch. Ако е указател към char и сочи към *валиден* адрес в паметта, няма нищо лошо. Титла: Re: C++ Editor/compilator Публикувано от: trafik77 в Dec 25, 2008, 10:39 Отново по темата: използвам gcc, но не ми признава по никакъв начин въвеждане на букви от клавиатурата. Нито scanf("%c", ch), нито getcar(), нито gets(). Не дава грешка при компилация, но при изпълнение просто прескача тези редове.програма която е компилирана с g++ #include <stdio.h> int i,k,N,mashini[4][5],izvkont[4][5],dostavki[4][5],ObstBroi=0,imin,imax,kmin,kmax; main() { do{ printf("Vavedete N za broi zagorovki(N>0):"); scanf("%d",&N);}while(N<=0); for(i=imin=imax=kmin=kmax=0;i<4;i++) { printf("\nRed mashini No%d:\n",i+1); for(k=0;k<5;k++) { do{ printf("Broi izrabotvani detaili ot mashina No%d za rabotna smqna:",k+1); scanf("%d",&mashini[k]);}while(mashini[k]<=0); ObstBroi+=mashini[k]; izvkont[k]=mashini[k]/N; if(!(mashini[k]%N))dostavki[k]=izvkont[k]; else dostavki[k]=izvkont[k]+1; if(mashini[k]>mashini[imax][kmax]) { imax=i; kmax=k; } if(mashini[k]<mashini[imin][kmin]) { imin=i; kmin=k; } } } for(i=0;i<4;i++) { printf("\nRed mashini No%d:\n",i+1); for(k=0;k<5;k++) { printf("Mashina No%d\n",k+1); printf("Broi dostavki:%d\n",dostavki[k]); printf("Broi izraboteni detajli:%d\n",mashini[k]); printf("Broi izvozeni konteineri:%d\n",izvkont[k]); } } printf("\nObst broi na izrabotenite detaili v ceha:%d\n",ObstBroi); printf("Mashina No%d ot red %d e proizvela nai-mnogo detaili:%d\n",kmax+1,imax+1,mashini[imax][kmax]); printf("Mashina No%d ot red %d e proizvela nai-malko detaili:%d\n",kmin+1,imin+1,mashini[imin][kmin]); } при мен проблема беше следния че под Win e void main() а под Linux main() Титла: Re: C++ Editor/compilator Публикувано от: gat3way в Dec 25, 2008, 12:13 Това не е вярно, съвсем спокойно може да бъде void main() в линукс, gcc евентуално ще изреве някакъв warning, но не е фатално. Иначе най-правилното е:
int main (int argc, char *argv[]) където argc е броя параметри на командния ред, а argv[] е масив от стрингове - параметри на командния ред. Нулевият елемент от масива е името на извиканата програма. Например ако програмата се нарича test и я извикаш от командния ред така: ./test input.txt output.txt argc ще ти е равно на 2, argv[] ще съдържа './test', 'input.txt', 'output.txt' main() връща int, за да може примерно след като програмата завърши с return ERRCODE, този ERRCODE да може да се прихваща от шел скриптове, викащи твоята програма. Титла: Re: C++ Editor/compilator Публикувано от: trafik77 в Dec 25, 2008, 13:39 Това не е вярно, съвсем спокойно може да бъде void main() в линукс, gcc евентуално ще изреве някакъв warning, но не е фатално. Иначе най-правилното е: добре на горния код не иска да се компилира ти някаква друга грешка в кода откриваш ли Титла: Re: C++ Editor/compilator Публикувано от: gat3way в Dec 25, 2008, 14:21 Това което ми прави впечатление е че там където извършваш аритметични операции с двумерни масиви, не указваш *втория* елемент.
Код: Примерно имаш array[x][y]. Мамка му и прасе е тоя форум, форматирането разказва играта на пейстнатия С код :( Титла: Re: C++ Editor/compilator Публикувано от: trafik77 в Dec 25, 2008, 14:52 Това което ми прави впечатление е че там където извършваш аритметични операции с двумерни масиви, не указваш *втория* елемент.Ами след промяната с main() работи и под Linux, не става въпрос само за този код дори и една елементарна програма за събиране пак става същото и след промяната main () всичко е ок Титла: Re: C++ Editor/compilator Публикувано от: gat3way в Dec 25, 2008, 15:06 Няма начин :) Аз доста пъти съм правил void main() - никога досега не е имало проблем заради това.
Какъв компилатор е това, gcc? Титла: Re: C++ Editor/compilator Публикувано от: trafik77 в Dec 25, 2008, 15:08 Няма начин :) Аз доста пъти съм правил void main() - никога досега не е имало проблем заради това.g++ geany Титла: Re: C++ Editor/compilator Публикувано от: gat3way в Dec 25, 2008, 15:09 А, тва е c++, не обикновено C...не знам, тогава може.
Титла: Re: C++ Editor/compilator Публикувано от: tarator в Dec 25, 2008, 17:19 Всъщност най-правилно е:
int main(int argc, char *argv[], char *envp[]) :) Титла: Re: C++ Editor/compilator Публикувано от: lkr в Dec 25, 2008, 17:24 int main() vs void main()
http://users.aber.ac.uk/auj/voidmain.shtml http://www.eskimo.com/~scs/readings/voidmain.960823.html Титла: Re: C++ Editor/compilator Публикувано от: tarator в Dec 25, 2008, 17:37 Няма никакъв проблем да се използва void main, особено ако излизаш от програмата с exit :P
Титла: Re: C++ Editor/compilator Публикувано от: gat3way в Dec 25, 2008, 17:53 И без да излезе с exit няма проблем. Предполагам gcc слага нещо в .dtors по въпроса така че програмата да приключи изпълнението си при излизане от main() безопасно.
От друга страна...тва е за /bin/cat: Цитат Disassembly of section .dtors: изглежда като безсмислици :) Титла: Re: C++ Editor/compilator Публикувано от: tarator в Dec 25, 2008, 17:58 Няма логика програмата да излезе "опасно". В calling conventions на всички архитектури, за които се сещам функциите връщат резултат от тип int в регистър. Няма нужда от никакви измислени dtors за да работи както трябва, просто програмата ще върне някаква произволна стойност (т.е. тази, която е имало в този регистър при излизане от main).
Титла: Re: C++ Editor/compilator Публикувано от: gat3way в Dec 25, 2008, 18:07 Е значи е напълно безопасно. Освен ако не ти пука за върнатата стойност.
|