Avatar billede junold Nybegynder
09. august 2006 - 23:36 Der er 11 kommentarer og
1 løsning

Cpp med Gcc, men borland sourcekode

Jeg er ved at gå ud af mit gode skind!

Jeg skal aflevere en opgave imorgen, men jeg har kun mulighed for at programmere i G++ her herhjemme, for jeg sidder på en ubuntu maskine, da windows på ingen måde virker på min maskine! Selv ikke efter re-installation)

Mit problem ligger i, at jeg på skolen bruger den gamle BC builder. Men der er  så mange af kommandoerne den ikke kender i g++? Den kender ikke #dos.h include filen, eller conio.h, den kender ikke clrscr, gotoxy, getch... jeg kan jo blive ved... ?  Hva gør jeg? Er det bare umuligt at bruge den samme source?
Avatar billede bertelbrander Novice
10. august 2006 - 00:53 #1
Det er lidt svært at få gcc på linux til at compilere funktioner fra conio.

Det letteste er nok at få det til at virke med ncurses. Kør "man ncurses" for at se hvordan du bruger det.
Jeg har et meget simpelt eksempel på ncurses her:
http://home20.inet.tele.dk/midgaard/snip/ncbeetle.html
Avatar billede arne_v Ekspert
10. august 2006 - 01:30 #2
en konvertering til curses giver nok problemer når det skal tilbage igen

lidt afhængig af hvor mange funktioner der er tale om så måske en #ifdef
med en hel stribe #define til Linux equivalenter

clrscr og gotoxy kan emuleres via escape sekvenser
Avatar billede junold Nybegynder
10. august 2006 - 08:13 #3
Ellers, kan man så ikke bare skite de kommandoer ud, der ik virker i gcc? Altså, bare skifte f.eks. istedet for at skrive "gotoxy" så skriver man bare den kommando man skal bruge i gcc? Det er jo sådan set bare tekst, så det er jo ikke et problem lige at ændre den smule tilbage...?

Og hvad mener du præcis med "escape sekvenser"? Sorry, jeg er lidt ny inden for programmering.
Avatar billede arne_v Ekspert
11. august 2006 - 04:09 #4
hvis der er andre argument lister så er det ikke en simpel søg og erstat men et
større arbejde

jeg kan lige bixe et eksempel
Avatar billede arne_v Ekspert
11. august 2006 - 04:16 #5
#include <stdio.h>
#ifdef _WIN32
#include <conio.h>
#else
#define clrscr() printf("%c[2J",0x1B)
#define gotoxy(x,y) printf("%c[%d;%dH",0x1B,x,y)
#endif

int main()
{
  int i;
  clrscr();
  for(i=0;i<20;i++)
  {
      gotoxy(i,i);
      printf("*");
  }
  printf("\n");
  return 0;
}
Avatar billede junold Nybegynder
11. august 2006 - 10:50 #6
Det ser ud til at det bliver lidt problematisk...
Bare i det lille program der, kommer den allerede med fejl:

error: expected constructor, destructor, or type conversion before ‘<’ token
Avatar billede junold Nybegynder
11. august 2006 - 10:56 #7
Og her er et program jeg er igang med (Det er dog kun halvt færdigt, men det kører i BC)

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <dos.h>

#ifdef _WIN32
#else
#define clrscr() printf("%c[2J",0x1B)
#define gotoxy(x,y) printf("%c[%d;%dH",0x1B,x,y)
#endif

//faste (skatteprocenter)

float ambskat=0.009;

float bundskat=0.00548;

float mellemskat=0.006;

float topskat=0.015;

float kirkeskat=0.0008;

float kommuneskat=0.0205;

float amtsskat=0.0117;





//variable

float bruttolon;

float ambidrag;



void skriv(int xpos, int ypos, char streng[40])

{

    gotoxy(xpos,ypos);

    puts(streng);

}



void am_bidrag()

{





    char sv_ambidrag;



    gotoxy(15,8);

    clreol();

    skriv (15,8, "Betales der AM-bidrag? J/N");

    gotoxy(15,10);

    scanf("%s", &sv_ambidrag);



        if (sv_ambidrag == 'j')

        {

        bruttolon=(bruttolon*ambskat);

        gotoxy(20,9);

        clreol();

        skriv (15,9, "Løn: ");

        gotoxy(20,9);

        printf("%0.2f", bruttolon);

        }



        if (sv_ambidrag == 'n')

        {

        gotoxy(20,9);

        clreol();

        skriv (15,9, "Løn: ");

        gotoxy(20,9);

        printf("%0.2f", bruttolon);

        }





}



void rente()

{

    float rente_ind;

    float rente_ud;

    float kapital;

    float ind_efter_kapital;



    gotoxy(15,8);

    clreol();

    skriv (15,8, "Hvad er dine rente intægter?");

    gotoxy(15,10);

    clreol();

    scanf("%f", &rente_ind);



    gotoxy(15,8);

    clreol();

    skriv (15,8, "Hvad er dine rente udgifter?");

    gotoxy(15,11);

    scanf("%f", &rente_ud);



    kapital=rente_ind-rente_ud;



    gotoxy(15,10);

    clreol();

    printf("kapital indkomst: %0.2f", kapital);



    ind_efter_kapital=bruttolon+kapital;

    skriv (15,9, "Løn: ");

    gotoxy(20,9);

    printf("%0.2f", ind_efter_kapital);



}



void main()

{





    clrscr();

    skriv (15,8, "Indtast din bruttoløn");

    skriv (15,9, "Løn: ");



    gotoxy(20,9);

    scanf("%f", &bruttolon);



    am_bidrag();

    rente();







    getch();



}

hvor der kommer disse fejl:
jesper@jesper-desktop:~/Programming$ gcc skatteb.cpp
skatteb.cpp:1:19: error: conio.h: No such file or directory
skatteb.cpp:4:17: error: dos.h: No such file or directory
skatteb.cpp: In function ‘void am_bidrag()’:
skatteb.cpp:37: error: ‘clreol’ was not declared in this scope
skatteb.cpp: In function ‘void rente()’:
skatteb.cpp:72: error: ‘clreol’ was not declared in this scope
skatteb.cpp: At global scope:
skatteb.cpp:97: error: ‘::main’ must return ‘int’
skatteb.cpp: In function ‘int main()’:
skatteb.cpp:113: error: ‘getch’ was not declared in this scope


Er der helt umuligt at få programmerne til at arbejde sammen?  Eller kan man evt skifte noget af kommandoerne ud, så det kører i linux?
Avatar billede arne_v Ekspert
12. august 2006 - 02:39 #8
conio.h og dos.h skal ind i ifdef'en

#ifdef _WIN32
#include <conio.h>
#include <dos.h>
#else
#define clrscr() printf("%c[2J",0x1B)
#define gotoxy(x,y) printf("%c[%d;%dH",0x1B,x,y)
#endif
Avatar billede arne_v Ekspert
12. august 2006 - 02:40 #9
du mangler clreol

#define clreol() printf("%c[0K",0x1B)
Avatar billede arne_v Ekspert
12. august 2006 - 02:41 #10
den sidste getch erstatter du af en standard getchar (så skal du bare bruge retur
tasten for at afslutte)
Avatar billede arne_v Ekspert
11. september 2006 - 23:25 #11
OK ?
Avatar billede junold Nybegynder
12. september 2006 - 08:12 #12
Yes, nu fik jeg den til at køre! Tak for hjælpen! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester