/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Header filer?
Fra : Kasper Nordal Lund


Dato : 13-10-04 08:35

Hej ng.

Jeg er ved at lære at programmere i ansi c, og på skolen bruger vi en
ældgammel borland c++ version 3.1 compiler til at lave vores små
programmer. Jeg håbede på at jeg kunne bruge min linux maskine til at
arbejde på hjemme, men den vil ikke godtage en headerfil som f.eks.
<conio.h>. Hvor kan man finde en liste over hvilke hederfiler der
svarer til hvad systemerne på tværs?
Jeg går ud fra at når det er ansi c, så er der ingen problemer i at
lave opgaverne på en linux maskine fremfor en windows - er det
rigtigt?

Håber i forstår mit spørgsmål, ellers må jeg prøve igen.

/Kasper

 
 
Bertel Lund Hansen (13-10-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 13-10-04 08:43

Kasper Nordal Lund skrev:

>Jeg er ved at lære at programmere i ansi c, og på skolen bruger vi en
>ældgammel borland c++ version 3.1 compiler til at lave vores små
>programmer. Jeg håbede på at jeg kunne bruge min linux maskine til at
>arbejde på hjemme, men den vil ikke godtage en headerfil som f.eks.
><conio.h>.

Conio.h er ikke en del af Ansi-C. Jeg har dog lært om den af én
der brugte den på Linux så den findes. Der er dog væsentlige
forskelle mellem den Linuxversion jeg hørte om, og så den
Windowsversion jeg har herhjemme (i Borlands gratis C++ 5.5).

>Hvor kan man finde en liste over hvilke hederfiler der
>svarer til hvad systemerne på tværs?

Hvis filerne svarer til hinanden, så hedder de præcis det samme.
Hvis de tilhører Standard Library, opfører de sig helt ens. Jeg
har Kernighan&Ritchies "The C Programming Language" som er
nærmest uundværlig hvis man bruger C selv om der senere er kommet
en revision af sproget (som ikke er indarbejdet i Borland C++
5.5). I den bog er der en oversigt over Standard Library (Ansi-C
headerfiler).

>Jeg går ud fra at når det er ansi c, så er der ingen problemer i at
>lave opgaverne på en linux maskine fremfor en windows - er det
>rigtigt?

Ja.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Kasper Nordal Lund (13-10-2004)
Kommentar
Fra : Kasper Nordal Lund


Dato : 13-10-04 11:40

On Wed, 13 Oct 2004 09:42:57 +0200, Bertel Lund Hansen
<nospamius@lundhansen.dk> wrote:

>Kasper Nordal Lund skrev:
>
>>Jeg er ved at lære at programmere i ansi c, og på skolen bruger vi en
>>ældgammel borland c++ version 3.1 compiler til at lave vores små
>>programmer. Jeg håbede på at jeg kunne bruge min linux maskine til at
>>arbejde på hjemme, men den vil ikke godtage en headerfil som f.eks.
>><conio.h>.
>
>Conio.h er ikke en del af Ansi-C. Jeg har dog lært om den af én
>der brugte den på Linux så den findes. Der er dog væsentlige
>forskelle mellem den Linuxversion jeg hørte om, og så den
>Windowsversion jeg har herhjemme (i Borlands gratis C++ 5.5).

Tak for svaret. Hvor finder jeg så funktioner som clrscr(); og
gotoxy();. Hvordan finder jeg i det hele taget ud af hvilke
headerfiler jeg skal bruge til hvilke kommandoer?

Mads Jensen (13-10-2004)
Kommentar
Fra : Mads Jensen


Dato : 13-10-04 11:57

Kasper Nordal Lund wrote:

> Tak for svaret. Hvor finder jeg så funktioner som clrscr(); og
> gotoxy();. Hvordan finder jeg i det hele taget ud af hvilke
> headerfiler jeg skal bruge til hvilke kommandoer?

Det er noget DOS-halløj. Hold dig til ansi c, hvis du vil være sikker på
at du ikke skal skrive et helt program om, eller rette det til på tværs
af din Linux maskine og Windows.

Som Bertal sagde, så er der en oversigt over headerfilerne i "The C
Programming Language" (både første og anden udgave; den sidste er en
opdatering med hensyn til standardisering). Ellers er nettet fuld af
manulerne og oversigter; www.cppreference.com og www.cplusplus.com er et
par af dem. (ja, de har noget med C at gøre )

/Mads

Kasper Nordal Lund (13-10-2004)
Kommentar
Fra : Kasper Nordal Lund


Dato : 13-10-04 12:20

On Wed, 13 Oct 2004 12:57:07 +0200, Mads Jensen
<madsj@significient.raptus.dk> wrote:

>Kasper Nordal Lund wrote:
>
>> Tak for svaret. Hvor finder jeg så funktioner som clrscr(); og
>> gotoxy();. Hvordan finder jeg i det hele taget ud af hvilke
>> headerfiler jeg skal bruge til hvilke kommandoer?
>
>Det er noget DOS-halløj. Hold dig til ansi c, hvis du vil være sikker på
>at du ikke skal skrive et helt program om, eller rette det til på tværs
>af din Linux maskine og Windows.
>
>Som Bertal sagde, så er der en oversigt over headerfilerne i "The C
>Programming Language" (både første og anden udgave; den sidste er en
>opdatering med hensyn til standardisering). Ellers er nettet fuld af
>manulerne og oversigter; www.cppreference.com og www.cplusplus.com er et
>par af dem. (ja, de har noget med C at gøre )

Mange tak, jeg ser på det.


Bertel Lund Hansen (13-10-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 13-10-04 12:32

Kasper Nordal Lund skrev:

>Tak for svaret. Hvor finder jeg så funktioner som clrscr(); og
>gotoxy();.

Det gør du ikke i Ansi-C. Der er ingen rutiner til at styre
skærmen.

En nødløsning består i hver eneste gang der er en ændring, at
bruge:

   system("cls");

til at slette skærmen og så opbygge den forfra. Det forudsætter
kun at du benytter <stdlib.h> som hører til Ansi-C.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Anders Bo Rasmussen (13-10-2004)
Kommentar
Fra : Anders Bo Rasmussen


Dato : 13-10-04 13:17

On Wed, 13 Oct 2004 13:31:38 +0200 Bertel Lund Hansen wrote:

>>Tak for svaret. Hvor finder jeg så funktioner som clrscr(); og
>>gotoxy();.
>
> Det gør du ikke i Ansi-C. Der er ingen rutiner til at styre
> skærmen.
>
> En nødløsning består i hver eneste gang der er en ændring, at
> bruge:
>
>    system("cls");
>
> til at slette skærmen og så opbygge den forfra. Det forudsætter
> kun at du benytter <stdlib.h> som hører til Ansi-C.

En anden mulighed er at bruge \r under udskriften. Fx:

int i;
for (i=0;i<10;i++)
printf("%i \r");

Ellers kan man skrive ansi-koder ud, burde de ikke både virke under dos
og linux?

--
41 6E 64 65 72 73

Kent Friis (13-10-2004)
Kommentar
Fra : Kent Friis


Dato : 13-10-04 16:19

Den Wed, 13 Oct 2004 14:16:45 +0200 skrev Anders Bo Rasmussen:
> On Wed, 13 Oct 2004 13:31:38 +0200 Bertel Lund Hansen wrote:
>
>>>Tak for svaret. Hvor finder jeg så funktioner som clrscr(); og
>>>gotoxy();.
>>
>> Det gør du ikke i Ansi-C. Der er ingen rutiner til at styre
>> skærmen.
>>
>> En nødløsning består i hver eneste gang der er en ændring, at
>> bruge:
>>
>>    system("cls");
>>
>> til at slette skærmen og så opbygge den forfra. Det forudsætter
>> kun at du benytter <stdlib.h> som hører til Ansi-C.
>
> En anden mulighed er at bruge \r under udskriften. Fx:
>
> int i;
> for (i=0;i<10;i++)
> printf("%i \r");
>
> Ellers kan man skrive ansi-koder ud, burde de ikke både virke under dos
> og linux?

Kun med ANSI.SYS loadet - og det er vist en sjældenhed.

Mvh
Kent
--
Help test this great MMORPG game - http://www.eternal-lands.com/

Bertel Lund Hansen (13-10-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 13-10-04 16:21

Anders Bo Rasmussen skrev:

>En anden mulighed er at bruge \r under udskriften.

Ved \r bliver cursoren på samme linje. 1 eller 10 af dem har
altså samme effekt. Tænker du ikke på \n?

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Anders Bo Rasmussen (13-10-2004)
Kommentar
Fra : Anders Bo Rasmussen


Dato : 13-10-04 18:49

On Wed, 13 Oct 2004 17:20:52 +0200 Bertel Lund Hansen wrote:

>>En anden mulighed er at bruge \r under udskriften.
>
> Ved \r bliver cursoren på samme linje. 1 eller 10 af dem har
> altså samme effekt. Tænker du ikke på \n?

Næe. Nu ved jeg jo ikke hvad det er der skal printes ud, men hvis det er
en værdi der skal opdateres, og man kan nøjes med en linje kan man bruge
\r.

--
41 6E 64 65 72 73

Anders Bo Rasmussen (13-10-2004)
Kommentar
Fra : Anders Bo Rasmussen


Dato : 13-10-04 18:47

On Wed, 13 Oct 2004 14:16:45 +0200 Anders Bo Rasmussen wrote:

> On Wed, 13 Oct 2004 13:31:38 +0200 Bertel Lund Hansen wrote:
>
>>>Tak for svaret. Hvor finder jeg så funktioner som clrscr(); og
>>>gotoxy();.
>>
>> Det gør du ikke i Ansi-C. Der er ingen rutiner til at styre
>> skærmen.
>>
>> En nødløsning består i hver eneste gang der er en ændring, at
>> bruge:
>>
>>    system("cls");
>>
>> til at slette skærmen og så opbygge den forfra. Det forudsætter
>> kun at du benytter <stdlib.h> som hører til Ansi-C.
>
> En anden mulighed er at bruge \r under udskriften. Fx:
>
> int i;
> for (i=0;i<10;i++)
> printf("%i \r");

Yaaak. Der mangler et argument: printf("%i \r",i);
>
> Ellers kan man skrive ansi-koder ud, burde de ikke både virke under dos
> og linux?
>


--
41 6E 64 65 72 73

Niels Dybdahl (14-10-2004)
Kommentar
Fra : Niels Dybdahl


Dato : 14-10-04 08:41

> >Tak for svaret. Hvor finder jeg så funktioner som clrscr(); og
> >gotoxy();.
>
> Det gør du ikke i Ansi-C. Der er ingen rutiner til at styre
> skærmen.

Der findes ANSI escape sekvenser som kan bruges til at slette skærmen
(ESC[2J), sætte cursoren det rigtige sted (ESC[#;#H) og meget andet. Jeg vil
formode at de fleste terminalvinduer i dag understøtter disse escape
sekvenser. Under MS-DOS skal man have en ANSI.SYS driver installeret for at
det virker.

Niels Dybdahl



Bertel Lund Hansen (14-10-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 14-10-04 09:04

Niels Dybdahl skrev:

>Under MS-DOS skal man have en ANSI.SYS driver installeret for at
>det virker.

Den installeres ikke automatisk i XP.

I de tidligere versioner af DOS og Windows sørgede jeg for at den
ikke blev installeret. Den sænker hastigheden drastisk for
skærmudskrift om end det næppe vil kunne ses på nutidige
maskiner.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Benny Andersen (13-10-2004)
Kommentar
Fra : Benny Andersen


Dato : 13-10-04 18:41


>Hvor finder jeg så funktioner som clrscr(); og
>gotoxy();. Hvordan finder jeg i det hele taget ud af hvilke
>headerfiler jeg skal bruge til hvilke kommandoer?
Brug google: "dos-specifik-funktion c linux"
Såvel web som gruppesøgning. God anledning til at lære hvordan borland
i dos, har gjort det anderledes, når du sammenligner med skolens
løsninger.

Sådan noget som gotoxy(), er en del af Borlands imlementering af
text-mode winduer. Hvis man vil sådan noget under Linux, skal man
finde nogle viderebygninger, hvor sproget c er vært for et system hvor
man kan dette. (System består i praksis af headerfiler, libs og
dokumentation)

Hvis men f.eks vil lave noget grafik (som det også er muligt i
Borland), kan man under Linux (og windows) anvende OPENGL

/* * simple.c
* This program draws a white rectangle on a black background.
*/
#include "glos.h"
#include <GL/gl.h>
#include <GL/glaux.h>
#include <stdlib.h>

int main(int argc, char** argv) {
   auxInitDisplayMode (AUX_SINGLE | AUX_RGB);
   auxInitPosition (0, 0, 500, 500);
   auxInitWindow ("Simple OpengGL Sample");
   glClearColor (0.0, 0.0, 0.0, 0.0);
   glClear(GL_COLOR_BUFFER_BIT);
   glColor3f(1.0, 1.0, 1.0);
   glMatrixMode (GL_PROJECTION);
   glLoadIdentity ();
   glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
   glBegin(GL_POLYGON);
   glVertex2f(-0.5, -0.5);
   glVertex2f(-0.5, 0.5);
   glVertex2f(0.5, 0.5);
   glVertex2f(0.5, -0.5);
   glEnd();
   glFlush();
   _sleep (10000);
   return(0);
}

Følgende er sakset fra Microsoft visual studio. Sproget C er her vært
for et andet sprog: OPENGL. Nogle headerfiler deklarerer sproget, og
det ligger implementeret i nogle libraries som skal kompileres med.

Til andre her i gruppen:
Hvad hedder det text-mode vinduer c tilføjning man anvender under
Linux? Utallige apps må bruge det! (midnat commander, editorerne, lynx
.............)

MVH Benny Andersen

Bertel Brander (13-10-2004)
Kommentar
Fra : Bertel Brander


Dato : 13-10-04 18:50

Kasper Nordal Lund wrote:
> Tak for svaret. Hvor finder jeg så funktioner som clrscr(); og
> gotoxy();.

Du burde kunne simulere gotoxy() og clrscr() med ncurses på linux,
se f.ex:

http://www.hmug.org/man/3/curses.html

Nogle gcc kompilere på windows har også ncurses.

--
Juliet: What's in a name? that which we call a rose
By any other name would smell as sweet; ...
Romeo: I take thee at thy word:
Call me but love, and I'll be new baptized;

Kim Schulz (13-10-2004)
Kommentar
Fra : Kim Schulz


Dato : 13-10-04 12:40

[snip]
>    system("cls");

og i linux er dette så system("clear").


--
Kim Schulz | Got Freedom? Software Freedom Day 2004 - 28th of
Geek by nature | August http://www.softwarefreedomday.org/
schulz.dk |

Kim Schulz (14-10-2004)
Kommentar
Fra : Kim Schulz


Dato : 14-10-04 06:14

[snip]
> Til andre her i gruppen:
> Hvad hedder det text-mode vinduer c tilføjning man anvender under
> Linux? Utallige apps må bruge det! (midnat commander, editorerne, lynx

curses eller ncurses (primært det sidste)


--
Kim Schulz | Need a Content Management System for your website? Go
Geek by nature | get Fundanemt at : http://www.fundanemt.com New
schulz.dk | version out now!

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste