webForumDet fria alternativet

lite saker som jag behöver hjälp med

C/C++

1 svar · 393 visningar · startad av jompa

Medlem sedan dec. 2000112 inlägg
Frågan#1

jag programmarerar lite i c++ (i DJGPP med skalprogrammet RHIDE), men det är en del saker som jag inte vet hur man gör:
(tacksam för svar, exempelfiler och länkar till hemsidor som tar upp mina frågor)

1. Hur ändrar man färg och bakgrundsfärg på texten i ett DOS-fönster?

2. Hur sparar/hämtar man information till/från en fil?

3. Hur läsar min in en bild (t.ex. pcx) på ett visst ställe på skärmen (i mode13h)?

Tack på förhand

------------------
Eller som Bill Gates sa när han hade hittat på win3 - "Nu är det jul igen"

Medlem sedan juni 200010 432 inlägg
#2

Eftersom det var DOS-läge...

  1. I conio.h hittas bl.a void textcolor() vilket ger i detta exempel en röd text:<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">#include<conio.h>
    #include<iostream.h>
    void main(){
    textcolor(RED);
    cputs("Röd text"); //fungerar med cputs
    }

  2. In / utmatning till fil kan ske med ren enkel c eller med <fstream.h> och fstream/ostream. Nedan kod visar en enkel variant på läsa och lägga till data i en fil med <fstream.h><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">#include<constrea.h> //är borlands så byt denna mot <iostream.h>
    #include<fstream.h>
    #include<stdlib.h>

    const char *file ="list.dat";
    const int Len = 40;
    int main()
    {
    char ch;

    // -----------visa ursprungligt innehåll-------------

     ifstream fin;
     		fin.open(file);
     			if (fin.is_open())
     							{
     					cout \<\< "Här är det aktuella innehållet i filen: "
      				\<\< file \<\< ":\\n";
         	while (fin.get(ch))
         cout \<\< ch;
    

    }
    fin.close();

    // -------------- lägg till nytt-------------------------

    ofstream fout(file, ios_base::out | ios_base::app);
    if (!fout.is_open())
    {
    cerr << "Kan inte öppna filen! " << file << " för utmatning:\n";
    exit(1);
    }
    cout << "Skriv in det nya (tom rad avslutar):\n";
    char name[Len];
    cin.get(name, Len);
    while (name[0] != '\0')
    {
    while (cin.get() != '\n')
    continue; //ta bort radslut och långa rader
    fout << name << "\n";
    cin.get(name, Len);
    }
    fout.close();
    fin.clear();
    fin.open(file);
    if (fin.is_open())
    {
    cout << "Reviderad fil: " << file << ":\n";
    while (fin.get(ch))
    cout << ch;
    }
    fin.close();
    return 0;

  3. mode13h diskuterades här

Finns det ingen manual till djgpp?

------------------
Ancilla, face mea laganum!

[Redigerat av PeW den 10 apr 2001]

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)