Användarprofil

Uppgifter
Användarnamn madah
Email
Besök 200
Hemsida Ingen
Plats (stad) Göteborg
Senaste besök 15:32 - 16:e Januari 2008
Poster i forumet 28
Varningar 0
Grupp Medlem
Medlem sedan 19:44 - 29:e Juni 2004
Artiklar och filer
Den här användaren har inga artiklar eller filer

Avatar


Presentation av madah

Den här användaren har inte skapat någon personlig presentation.

Senaste inläggen i forumet

Vad gör jag för fel?
    Citat av Independence:
  1. slumptal = rand() / (RAND_MAX / 6) + 1;


Tror jag är mer begriplig kod, den kan dock eventuellt innehålla ett fel som är i storleksordning 1*10^(-10) (på min dator). Ingen större fara med andra ord.

Sammanfattningsvis tar man iaf rand() som genererar ett värde mellan 0 och RAND_MAX. Man delar sedan det värdet på kvoten av RAND_MAX och det maxvärde, minus ett, man vill få fram. Detta ger då att rand()/(RAND_MAX/max_val) genererar ett värde mellan 0 och sitt max-värde-1. Sedan lägger man på ettan och får ett värde mellan 1 och sitt maxvärde. Denna kod bör alltså generera värden mellan 1 och 7.
Det är så jag uppfattar det hela iaf Smiley


Det kommer ju från din artikelserie (men här används iSlumptal = rand() / (RAND_MAX / 6 + 1) + 1):

http://www.blinkenlights.se/articles/cplusplusnyborjarguide/part19/

Annars är ju det vanligaste att man vid tutorials som beskriver slumptal använder modulus. Ditt exempel med division har ju förbryllat ett antal personer, kanske läge att ändra även denna artikeln Smiley

Postad 20:42 - 15:e Februari 2007
SDL, lagg
    Citat av Independence:
Nja, man vill nog inte köra freesurface i en loop heller, det skulle dra väldigt mycket kraft från datorn. Ladda endast in dem en gång, och sedan ur dem en gång, istället.


Hehe, det är nog bäst du editerar artikeln och lägger till en LoadImage-funktion samt ändrar DisplayImage så den tar en SDL_Surface* som parameter istället. Smiley

Postad 20:06 - 15:e Februari 2007
svenska tecken ex: åäö
Denna skrev jag för flera år sen på sweclockers, eftersom just denna fråga var den vanligaste. Problemet uppstår alltså endast i konsollen i Windows.

Jag vet tyvärr ingen snygg lösning på detta problem som fungerar överallt. Visserligen kan man använda alternativa konsoller i Windows som t ex bash, men då måste ju också alla andra personer som man vill ska kunna köra programmet ha det.

Här är en liten sammanfattning jag skrev ihop:

Anledningen till att åäö...,,- (och alla andra "udda" tecken som é, ü, osv) inte ser rätt ut i konsollen, beror på att den som standard är satt till OEM-850 medans allt annat kör Windows-1252 (Latin I). Dessa är inte helt kompatibla då vissa tecken har helt olika koder.

Det finns två sätt att lösa det på, fixa koden eller fixa konsollen.

Lösning 1: (Fixa koden)

Byt ut alla tecken (alternativt använda t ex UltraEdit och köra ANSI-to-OEM):

å = \x86
ä = \x84
ö = \x94
... = \x8F
,, = \x8E
- = \x99

T ex:
printf("\x86\x84\x94\x8F\x8E\x99\n"); // skriver ut åäö...,,-

Men det är inte alltid detta fungerar så bra; för om man t ex sparar text till en fil och öppnar den med notepad, så ser alla åäö...,,- ut som EUREURzEURŽ,,. Det går dock att fixa genom att sätta fonten till Terminal.
Knivigare blir det om det är andra (Windows-)program som ska öppna filen, t ex om det är en lista över filer (som en m3u-playlist).

Lösning 2: (Fixa konsollen)

Högerklicka på titelraden för konsollfönstret, välj Properties/Egenskaper.
Gå till Font, sätt den till "Lucida Console", tryck OK och välj att det ska gälla alla fönster.

Lösning 2a: (Fungerar endast i WinNT/2K/XP)
Lägg till i din kod:
#include <windows.h>

och lägg till detta i början av main:
SetConsoleOutputCP(1252);

Lösning 2b:
Skriv i konsollen: (detta måste göras varje gång du startar en ny konsoll, men det går att lösa genom att skapa en genväg till "cmd.exe /c chcp 1252")

Om du kör WinNT/2K/XP:
chcp 1252

Om du kör Win9X:
mode con cp select=1252


Dock så fungerar varken 2a eller 2b särskilt bra om man inte har satt fonten till Lucida Console.

Postad 21:05 - 5:e Februari 2007
2 nybörjar frågor
För att byta ut ikonen så kan du göra såhär:

Skapa först en ny textfil och döp den till exempelvis resursfil.rc. Lägg till detta som första rad i den filen:

1    ICON    "ikonfilnamn.ico"


Där ikonfilnamn.ico är en ikon som ligger i samma katalog som resursfil.rc och dina andra källkodsfiler.

Nästa steg blir att kompilera resursfilen. Det finns lite olika sätt beroende på vilken kompilator man kör. Står lite om det här.

Sedan är det bara att länka med .o/.res-filen som vanligt.

Postad 22:08 - 23:e Januari 2007
c++ jämförelseoperatorer från utility
    Citat av Omega:
...
Däremot fungerar inte operatorn "<=" vilken jag förväntat mig få på köpet.
...


Operatorerna <= och även >= och != måste man nog skriva dit själv, de kommer inte med på köpet. Samma saker gäller för +, ++ och +=.

Postad 21:21 - 10:e Januari 2007

Skicka meddelande
Läs madahs blog