[C] Hoe kan ik een byte zoeken in een bestand

Pagina: 1
Acties:
  • 147 views sinds 30-01-2008
  • Reageer

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Ik wil een programmaatje maken in C dat de lengte en de hoogte van een jpg bestand leest. Ik heb gevonden dat ik daarvoor een SOF (start of frame) marker moet vinden. En die marker is een twee-byte code, ffcx (met voor x=0 tot 3).
(dit staat op http://mini.net/tcl/757.html). Dit snap ik dus niet echt. Ik weet niet zoveel van C en ik heb altijd geleerd dat elk karakter één byte is, dus hoe kan ffcx nou maar uit twee bytes bestaan? En hoe kan ik dat bijvoorbeeld de byte ff zoeken? (ik weet dus wel hoe ik bijvoorbeeld het karakter f kan zoeken en ook twee keer het karakter f, maar ff in één byte dat snap ik dus niet). Op http://mini.net/tcl/757.html staat wel een TCL script dat dit doet, maar daar snap ik ook niet zo veel van. Dit is dat scriptje:

proc GetJPGDimensions { filename } {

set fd [ open $filename ]
fconfigure $fd -translation binary
set ch1 "00"
while { ! [ eof $fd ] } {
binary scan [ read $fd 1 ] "H2" ch2
if { ( $ch1 == "ff" ) && ( $ch2 >= "c0" ) && ($ch2 <= "c3" ) } {
binary scan [ read $fd 7 ] "x3SS" height width
return [ list $height $width ]
}
set ch1 $ch2
}
error "Couldn't find JPG header for $filename"

}

Ik hoop dat er iemand wil antwoorden, want ik ben nu al de hele dag aan het klooien en ik kom er echt niet uit.

Alvast bedankt.

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Ik zou zeggen:

Een byte hoeft geen char te zijn hoor.

Lees FFC'x' en denk daarbij aan hexadecimaal.
Dan weet je het wel.

Een byte is van 00 tot FF, snappuh vous?
0 1 2 3 4 5 6 7 8 9 0 A B C D E F

Dus eerst scannen op een byte met waarde FF (255) en dan op eentje met waarde C'x' (192 t/m 195)

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Op zondag 09 september 2001 13:45 schreef The - DDD het volgende:
Ik zou zeggen:

Lees FFC'x' en denk daarbij aan hexadecimaal.

Dan weet je het wel.

Een byte is van 00 tot FF, snappuh vous?
Bedankt, maar zoals ik al zei weet ik niet zo heel veel van C dus ik kan helaas nog niet zoveel met je antwoord. Hoe kan ik hexadecimaal lezen? Ik open het bestand nu als 'rb', maar hoe kan ik dan zoeken naar ffc'x'?

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Het begint me nu een beetje te dagen denk ik. Maar zou je iets meer uitleg kunnen geven over hoe ik bijv. een byte kan vinden met de waarde 255? (ik weet alleen maar hoe ik een byte kan vinden met de waarde 0 tot 128 ('gewone' karakters dus), want dat heb ik dus wel geleerd)

Verwijderd

je hebt nu ergens iets van if (teken=='f') { blaat; }
als je daarvan maakt if (teken==0xff) { blaat;} moet je al een redelijk eind de goede kant op gaan

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
ok bedankt! maar waar staat dat 0x in 0xFF dan voor?

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
k schrijf het even in platte C...
code:
1
2
3
4
5
6
7
8
9
10
11
...
flagFound = false
...
if (ch1 == 255)
{
   if (ch2 >= 192 && ch2 <= 195)
   {
    flagFound = true;
   }
}
...

Uiteraard is het netter om die waarden hexadecimaal te noteren, dan komt het mooier overeen met je documentatie.
Doe je gellof ik met 0xFF en 0xC0 en 0xC3 (maar dat moet je even checken, weet niet meer zeker).

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
En is het wel goed dat ik het bestand open als 'rb', of is 'r' beter? (ik weet het verschil niet echt, ik weet alleen dat b voor binary staat)

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Op zondag 09 september 2001 13:55 schreef The - DDD het volgende:
k schrijf het even in platte C...
code:
1
2
3
4
5
6
7
8
9
10
11
...
flagFound = false
...
if (ch1 == 255)
{
   if (ch2 >= 192 && ch2 <= 195)
   {
    flagFound = true;
   }
}
...

Uiteraard is het netter om die waarden hexadecimaal te noteren, dan komt het mooier overeen met je documentatie.
Doe je gellof ik met 0xFF en 0xC0 en 0xC3 (maar dat moet je even checken, weet niet meer zeker).
En ch1 en ch2 moet ik dan declaren? Zo ja als wat? (int?)

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Op zondag 09 september 2001 13:54 schreef Hark het volgende:
ok bedankt! maar waar staat dat 0x in 0xFF dan voor?
Daarmee geef je aan dat datgene wat er staat een hexadecimale waarde is...

Erg hadnig als er 0x12 staat. 12 op deze manier is een heel andere waarde.

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Op zondag 09 september 2001 13:56 schreef Hark het volgende:

[..]

En ch1 en ch2 moet ik dan declaren? Zo ja als wat? (int?)
Als byte of als char (een char is een byte). Echter alleen char als een char in het systeem daadwerkelijk 1 byte is.

Daarom gebruik een byte, weet jezeker dat je er 1 hebt.

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
OK en ch1 en ch2 lees ik gewoon met fscanf? Dus eerst op 0xFF zoeken en als die gevonden is kijken of er 0xC0-0xC3 direct achter staat?

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Heel erg bedankt! Ik ga meteen kijken of het nu wel lukt.

Verwijderd

En er rekening mee houden dat er na die 0xff nog een 0xff kan staan welke dan weer de 1e in de reeks van 0xffc? kan zijn ;)

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Help! Mijn compiler (borland C++) snapt "byte ch1;" niet! Dus ik kan ch1 niet als byte declaren. wat nu?

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Op zondag 09 september 2001 14:07 schreef Hark het volgende:
Help! Mijn compiler (borland C++) snapt "byte ch1;" niet! Dus ik kan ch1 niet als byte declaren. wat nu?
char

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Op zondag 09 september 2001 14:05 schreef Yarvieh het volgende:
En er rekening mee houden dat er na die 0xff nog een 0xff kan staan welke dan weer de 1e in de reeks van 0xffc? kan zijn ;)
Ja daar had ik al aan gedacht.

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Op zondag 09 september 2001 14:07 schreef The - DDD het volgende:

[..]

char
OK

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Ik heb nu dit, maar ik krijg geen output (hij vind de byte die er moet zijn dus niet).

int main(void)
{
int c;
char ch1;
FILE *input_file;
input_file=fopen(INPUT_FILENAME,"rb");

while ((ch1=fscanf(input_file,"%c",&ch1))!=EOF)
{
if (ch1==255)
{
printf("gevonden");
}
}

return EXIT_SUCCESS;
}

Verwijderd

char gaat van -128 to 127 dus da gaat nie werken, neem maar een unsigned char.

ps. je hebt geen check of het openen van die file wel gelukt is..

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Bij het compileren krijg ik ook de melding dat 255 "out of range in comparision" is (char gaat dus zeker maar tot 128?) maar als ik 255 in 100 of iets anders verander verdwijnt wel de foutmelding, maar ik krijg nog altijd geen output.

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
ja met unsigned char werkt het wel! Die check moet ik nog even maken idd.

Verwijderd

code:
1
  while ((ch1=fscanf(input_file,"%c",&ch1))!=EOF)

En wat wil je hier ook al weer mee bereiken?! in 1 regel 2x ch1 een waarde toekennen... *FOEI* pak je c manual er es bij zeg..

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Op zondag 09 september 2001 14:23 schreef Yarvieh het volgende:
code:
1
  while ((ch1=fscanf(input_file,"%c",&ch1))!=EOF)

En wat wil je hier ook al weer mee bereiken?! in 1 regel 2x ch1 een waarde toekennen... *FOEI* pak je c manual er es bij zeg..
Oh ja foutje (ik zei toch dat ik niet zo goed ben in C...)

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 19-09 17:21
Ik ken TCL niet, maar kan ik dit uit dat scriptje concluderen?
1) zoek naar byte FFh (255) (1 byte)
2) wordt deze gevolgt door C'x'h? (1 byte)
3) dan wordt deze gevolgt door "SS" en twee unsigned shorts (width & height). (6 bytes)

Dan moet je dus in weze 8 bytes lezen en dat TCL scriptje doet dat volgens mij (tenzij "read $fd n" niet voorstelt dat er n bytes gelezen moeten worden).

Een equivalente C-code zou dan _kunnen (wil iemand even checken?) zijn (even snel getypt, niet erg optimale code en nogal lelijk :) ):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#define BUF_SIZE 4096

FILE        *fp;
unsigned char    buf[BUF_SIZE];
size_t       i, n;
unsigned short   width, height;

fp = fopen("plaatje.jpg", "rb");

width = 0;
height = 0;
while ((n = fread(buf, sizeof(char), BUF_SIZE, fp)))
{
    for (i=0; i < n; i++)
    {
check_again:
      if (buf[i] == 0xFFu)
      {
        i++;
        if (i == n)
        {
            n = fread(buf, sizeof(char), BUF_SIZE, fp);
            i = 0;
            if (!n)
              break;
            if (!((buf[i]&0xC0) ^ 0xC0)) && (buf[i]&3))
            {
              i++;
              if (i+6 >= n)
              {
                n = fread(buf, sizeof(char), BUF_SIZE, fp);
                i = 0;
                if (n < 6)
                    break;
              }

              if (buf[i] == 'S' &&
                buf[i+1] == 'S')
              {
                // dit onderste is afhankelijk van
                // hoe jpeg een short opslaat
                // (little endian of big endian)
                // ik zou dus niet weten of deze
                // regel zou kloppen :)
                width   = buf[i+3] << 8u;
                width  |= buf[i+2];
                height  = buf[i+5] << 8u;
                height |= buf[i+4];
              }
              else
                goto check_again;
            }
            else
              goto check_again;
        }
      }
    }
}

fclose(fp);

// De width&height geeft de dimensies van het plaatje aan.
// Zijn de width&height beiden 0 dan is er of een fout
// in de jpeg file of het is een jpeg van 0 bij 0 pixels
// (dat laatste lijkt me wel erg onwaarschijnlijk).

Nogmaals, grote kans dat deze code niet werkt :+
(ik zou het endian lezen van de width&height wel verkeert hebben... en dat van die "SS" is volgens mij ook niet het geval en de regel "if (!((buf[i]&0xC0) ^ 0xC0)) && (buf[i]&3))" heb ik ook zonder lang na te denken erin gestopt).

Maar goed, misschien heb je er wat aan.

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Nou ik heb nu dus dit, en ik krijg weer geen output. (nadat ik dat foutje van dat 2 keer ch1 declaren verbeterd heb). Ook niet als ik 255 in een andere waarde verander.

#include <stdio.h>
#include <stdlib.h>

#define INPUT_FILENAME "taartvoorbill.jpg"

int main(void)
{
unsigned char ch1;
FILE *input_file;
input_file=fopen(INPUT_FILENAME,"rb");
if (input_file==NULL)
{
printf("Geen bestand geopend");
return 1;
}
while ((fscanf(input_file,"%c",&ch1))!=EOF)
{
if (ch1==255)
{
printf("gevonden");
}
}

return EXIT_SUCCESS;
}

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Wow! Erg aardig dat je zo'n code voor me schrijft, maar ik snap er niet zoveel van. Ik doe het dus liever op mijn eigen manier, maar die werkt dus nog niet. Zou je me daar misschien wat mee kunnen helpen?
Op zondag 09 september 2001 14:31 schreef Infinitive het volgende:
Ik ken TCL niet, maar kan ik dit uit dat scriptje concluderen?
1) zoek naar byte FFh (255) (1 byte)
2) wordt deze gevolgt door C'x'h? (1 byte)
3) dan wordt deze gevolgt door "SS" en twee unsigned shorts (width & height). (6 bytes)

Dan moet je dus in weze 8 bytes lezen en dat TCL scriptje doet dat volgens mij (tenzij "read $fd n" niet voorstelt dat er n bytes gelezen moeten worden).

Een equivalente C-code zou dan _kunnen (wil iemand even checken?) zijn (even snel getypt, niet erg optimale code en nogal lelijk :) ):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#define BUF_SIZE 4096

FILE        *fp;
unsigned char    buf[BUF_SIZE];
size_t       i, n;
unsigned short   width, height;

fp = fopen("plaatje.jpg", "rb");

width = 0;
height = 0;
while ((n = fread(buf, sizeof(char), BUF_SIZE, fp)))
{
    for (i=0; i < n; i++)
    {
check_again:
      if (buf[i] == 0xFFu)
      {
        i++;
        if (i == n)
        {
            n = fread(buf, sizeof(char), BUF_SIZE, fp);
            i = 0;
            if (!n)
              break;
            if (!((buf[i]&0xC0) ^ 0xC0)) && (buf[i]&3))
            {
              i++;
              if (i+6 >= n)
              {
                n = fread(buf, sizeof(char), BUF_SIZE, fp);
                i = 0;
                if (n < 6)
                    break;
              }

              if (buf[i] == 'S' &&
                buf[i+1] == 'S')
              {
                // dit onderste is afhankelijk van
                // hoe jpeg een short opslaat
                // (little endian of big endian)
                // ik zou dus niet weten of deze
                // regel zou kloppen :)
                width   = buf[i+3] << 8u;
                width  |= buf[i+2];
                height  = buf[i+5] << 8u;
                height |= buf[i+4];
              }
              else
                goto check_again;
            }
            else
              goto check_again;
        }
      }
    }
}

fclose(fp);

// De width&height geeft de dimensies van het plaatje aan.
// Zijn de width&height beiden 0 dan is er of een fout
// in de jpeg file of het is een jpeg van 0 bij 0 pixels
// (dat laatste lijkt me wel erg onwaarschijnlijk).

Nogmaals, grote kans dat deze code niet werkt :+
(ik zou het endian lezen van de width&height wel verkeert hebben... en dat van die "SS" is volgens mij ook niet het geval en de regel "if (!((buf[i]&0xC0) ^ 0xC0)) && (buf[i]&3))" heb ik ook zonder lang na te denken erin gestopt).

Maar goed, misschien heb je er wat aan.

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Door deze regel stopte mijn programma meteen:

while ((fscanf(input_file,"%c",&ch1))!=EOF)

Ik heb nu EOF in 3 verandert (zodat mijn programma nu nooit meer stopt, maar ik weet niet hoe ik het anders kan doen) en nu werkt het wel. Alle waarden van 0 (of 0x00) tot 254 (of 0xFE) kan mijn programma vinden, maar 255 (of 0xFF) vindt hij nooit, in geen enkel bestand! Hoe kan dat? (waarom moet ik nou ook weer precies de waarde 255 hebben...)

Verwijderd

Op zondag 09 september 2001 13:39 schreef Hark het volgende:
Ik wil een programmaatje maken in C dat de lengte en de hoogte van een jpg bestand leest.
[..]
Waarom gebruik je libjpeg niet?
http://www.ijg.org/

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 19-09 17:21
Waar heb je dat van die SOF marker gelezen? Ik weet dat er een beschrijving van JPEG is, maar degene die ik gezien had gaf geen standaard formaat. Het standaard formaat dat er uiteindelijk gekomen is, heette dacht ik JFIF ofzoiets. Anyway, als iemand daarvan het protocol heeft, kan ik even kijken hoe het precies met die SOF marker zit.

Zo kan ik je niet helpen. Enne, met alleen zoeken naar 0xFF kom je er niet (en eigenlijk zoeker naar 0xFF 0xC'x' ook niet... "As Odeen noted, we can't just search on "ffcx" because most digital cameras use an embedded thumbnail for display on the camera's LCD. ".

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 19-09 17:21
Op zondag 09 september 2001 15:06 schreef beelzebubu het volgende:

[..]

Waarom gebruik je libjpeg niet?
http://www.ijg.org/
Misschien een beetje overkill voor alleen de width&height lezen?

Maar ik moet zeggen, ik heb libjpeg ook gebruikt en het werkt goed en simpel.

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Verwijderd

Als je 't dan toch zo graag zelf wil doen in c kan je wellicht beter deze VB code porten dan die warrige tcl prut.

http://groups.google.com/groups?q=jpg+width+detect+c&hl=nl&safe=off&rnum=1&selm=3454df1e.1042673421%40snews.zippo.com

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Op zondag 09 september 2001 15:06 schreef beelzebubu het volgende:

[..]

Waarom gebruik je libjpeg niet?
http://www.ijg.org/
Nou het programmaatje dat ik nu probeer te maken is eigenlijk maar een stukje van een groter programma (om automatisch html pagina's te maken van foto's) en libjpeg snap ik niet, dus dat kan ik niet verwerken in mijn programma. Maar ik ben er nu bijna, maar nog net niet helemaal. Hopelijk kan iemand me nog helpen met deze laatste loodjes...

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
>Waar heb je dat van die SOF marker gelezen?

Op dezelfde pagina als waar staat "As Odeen noted, we can't just search on "ffcx".

En in de JPEG image compression FAQ, part 1/2:

The header of a JPEG file consists of a series of blocks, called "markers".
The image height and width are stored in a marker of type SOFn (Start Of
Frame, type N). To find the SOFn you must skip over the preceding markers;
you don't have to know what's in the other types of markers, just use their
length words to skip over them. The minimum logic needed is perhaps a page
of C code. (Some people have recommended just searching for the byte pair
representing SOFn, without paying attention to the marker block structure.
This is unsafe because a prior marker might contain the SOFn pattern, either
by chance or because it contains a JPEG-compressed thumbnail image. If you
don't follow the marker structure you will retrieve the thumbnail's size
instead of the main image size.) A profusely commented example in C can be
found in rdjpgcom.c in the IJG distribution (see part 2, item 15). Perl
code can be found in wwwis, from http://www.tardis.ed.ac.uk/~ark/wwwis/.

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Sorry maar van VB weet ik echt niets af...
Op zondag 09 september 2001 15:11 schreef Yarvieh het volgende:
Als je 't dan toch zo graag zelf wil doen in c kan je wellicht beter deze VB code porten dan die warrige tcl prut.

http://groups.google.com/groups?q=jpg+width+detect+c&hl=nl&safe=off&rnum=1&selm=3454df1e.1042673421%40snews.zippo.com

Verwijderd

Op zondag 09 september 2001 15:09 schreef Infinitive het volgende:

[..]

Misschien een beetje overkill voor alleen de width&height lezen?

Maar ik moet zeggen, ik heb libjpeg ook gebruikt en het werkt goed en simpel.
overkill :/

Als je een plaatje inlaadt dan open()t ie em alleen. read_header() (welke functie dat dan ook is) leest dan de header uit en returnt info zoals width/height. Decoderen en colorspace conversion wordt dan nog niet eens gedaan....

Dus er zitten misschien functies in die je niet zal gebruiken, in die zin misschien overkill, maar waarom zou je dubbel werk doen :?

Verwijderd

Op zondag 09 september 2001 15:12 schreef Hark het volgende:

[..]

Nou het programmaatje dat ik nu probeer te maken is eigenlijk maar een stukje van een groter programma (om automatisch html pagina's te maken van foto's) en libjpeg snap ik niet, dus dat kan ik niet verwerken in mijn programma. Maar ik ben er nu bijna, maar nog net niet helemaal. Hopelijk kan iemand me nog helpen met deze laatste loodjes...
Zie de CVS van de mjpegtools (link in mijn sig), kijk in CVSROOT/mjpeg_play/lavtools/jpegutils.c en daar zie je (overigens, dit is GPL!!! Dit kun je dus niet spontaan copieren!!) hoe je met libjpeg de header kunt uitlezen.

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
>CVSROOT/mjpeg_play/lavtools/jpegutils.c

hoe kom ik daar dan? Ik ben nu wel op die pagina, maar ik zie nergens iets van CVSROOT staan.

  • Hark
  • Registratie: Februari 2001
  • Laatst online: 08-07-2025
Het is al gelukt! Bedankt allemaal!

Verwijderd

Op zondag 09 september 2001 15:32 schreef Hark het volgende:
>CVSROOT/mjpeg_play/lavtools/jpegutils.c

hoe kom ik daar dan? Ik ben nu wel op die pagina, maar ik zie nergens iets van CVSROOT staan.
Nog ff achteraf

Klik de link CVS - klik op "browse CVS" en dan zit je in CVSROOT/ :)

  • VisionMaster
  • Registratie: Juni 2001
  • Laatst online: 18-07 20:32

VisionMaster

Security!

Op zondag 09 september 2001 14:23 schreef Yarvieh het volgende:
code:
1
  while ((ch1=fscanf(input_file,"%c",&ch1))!=EOF)

En wat wil je hier ook al weer mee bereiken?! in 1 regel 2x ch1 een waarde toekennen... *FOEI* pak je c manual er es bij zeg..
Had ik ook gezien... is erg nutteloos

I've visited the Mothership @ Cupertino


  • VisionMaster
  • Registratie: Juni 2001
  • Laatst online: 18-07 20:32

VisionMaster

Security!

Op zondag 09 september 2001 15:04 schreef Hark het volgende:
Door deze regel stopte mijn programma meteen:

while ((fscanf(input_file,"%c",&ch1))!=EOF)

Ik heb nu EOF in 3 verandert (zodat mijn programma nu nooit meer stopt, maar ik weet niet hoe ik het anders kan doen) en nu werkt het wel. Alle waarden van 0 (of 0x00) tot 254 (of 0xFE) kan mijn programma vinden, maar 255 (of 0xFF) vindt hij nooit, in geen enkel bestand! Hoe kan dat? (waarom moet ik nou ook weer precies de waarde 255 hebben...)
info:
fscanf(para's) retourneerd het aantal succesvolle scans in de format-string.
De formatstring is parameter 2.

I've visited the Mothership @ Cupertino

Pagina: 1