c++ char naar uint8_t

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Lunacy
  • Registratie: Juni 2008
  • Laatst online: 27-10-2024
Hoi allemaal,

Ik heb een klein probleempje met me c++ code en ben dan ook geen c++ expert :)
Ik lees van de command line een id uit dat ik in een char array plaats vervolgens is het de bedoeling om die inhoud in een uint8_t te plaatsen.
Ik heb me al plat gegoogled maar kan er niet uitkomen. De compiler geeft steeds conversie errors...

user input zal iets als "03" zijn.
Waar ik dan 0x03 van maak en dat zou ik dan in dat unsigned integer gevalletje moeten krijgen.

Alvast bedankt voor elke suggestie!

Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

strtoi();

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 21:30

Sebazzz

3dp

Hoe bedoel je? Mijn C++ kennis is weer een beetje stoffig maar dit moet kunnen:
C++:
1
2
3
4
5
6
7
8
9
10
int main(void) {
   unsigned int x;
   std::cout << "Plz inputz teh X" << std::endl;
   std::cin >> x;
   
   x++;
   std::cout << "Teh X iz now " << x << std::endl;
   
   return 0;
}
Iets soortgelijks kan misschien voor jouw datatype gelden, misschien kan je een unsigned int wel ernaartoe casten.

Is geloof ik niet goed :z

[ Voor 4% gewijzigd door Sebazzz op 08-06-2010 23:58 ]

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

char is (meestal) een 8bit data type
uint8_t is een 8bit data type

gewoon casten dus :)


Ik las char, maar het is C-string

[ Voor 19% gewijzigd door MLM op 09-06-2010 16:41 ]

-niks-


Acties:
  • 0 Henk 'm!

  • R3veNG
  • Registratie: Maart 2009
  • Laatst online: 03-05-2021

R3veNG

Undercover Belg

TS, laat jouw code eens zien waardoor de compiler gaat zeuren over conversiefouten?

CoC: MISSeR | Steam: r3veng


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 15:26
Eerst omzetten van string naar int, dan hopen dat het getal tussen 0 en 255 ligt ( of er verder geen probleem van maken :P ) en dat toewijzen aan de uint8_t.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

Verwijderd

MLM schreef op woensdag 09 juni 2010 @ 09:29:
char is (meestal) een 8bit data type
uint8_t is een 8bit data type

gewoon casten dus :)
Zolang we over 1 char praten (zoals "9") zal het casten werken, wat als je "255" als invoer krijgt (3 chars) ?
De TS heeft het over een char array en dan moet je zoals al gemeld strtol gebruiken:

http://www.cplusplus.com/reference/clibrary/cstdlib/strtol/

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op woensdag 09 juni 2010 @ 09:59:
Zolang we over 1 char praten (zoals "9") zal het casten werken
Dan krijg je alsnog de ascii waarde van '9', en niet het getal 9. Gelukkig lopen die tekens gewoon op en zou je er dus '0' af kunnen trekken om de getalwaarde te krijgen.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Het voorbeeld van de TS was al "03"

Maar goed, even wat C++ code in plaats van de C die ik nu zie:

C++:
1
2
3
std::stringstream input("03"); // Kan ook andere stream zijn, std::cin bijvoorbeeld voor command line.
uint8_t data;
input >> data;

Alhoewel ik hier wel aanneem dat je uint8_t datatype een goed gedefinieerd C++ type is. Het is geen standaard type, dus zeker is dat niet.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 15:26
MSalters schreef op woensdag 09 juni 2010 @ 12:44:
Alhoewel ik hier wel aanneem dat je uint8_t datatype een goed gedefinieerd C++ type is. Het is geen standaard type, dus zeker is dat niet.
Het is een C99 type : Wikipedia: stdint.h

[edit]
Hum, ik zie vast iets over het hoofd

[ Voor 6% gewijzigd door farlane op 09-06-2010 13:35 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Orwell
  • Registratie: December 2009
  • Laatst online: 08-09 22:11
Zoiets:
C++:
1
2
3
4
5
6
7
8
9
void Nogwat() {
    char final[32] = "0x";
    char buffertje[8];
    cout << "Voer wat in: ";
    cin.get(buffertje,8);
    strcat(final,buffertje);
    cout << "Uw te casten array: " << final;
    unsigned int ifinal = atoi(final);
}


Ik zie eigenlijk het niet niet in van uin8_t. Het is gewoon een char toch?

[ Voor 15% gewijzigd door Orwell op 09-06-2010 14:38 ]


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 15:26
Orwell schreef op woensdag 09 juni 2010 @ 14:01:
Zoiets:
Ik zie eigenlijk het niet niet in van uin8_t. Het is gewoon een char toch?
In de praktijk zal het 10 tegen 1 een unsigned char zijn, het is echter gedefinieerd als een "exact width integer type",in dit geval dus een usigned variant van 8 bits.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Orwell
  • Registratie: December 2009
  • Laatst online: 08-09 22:11
farlane schreef op woensdag 09 juni 2010 @ 14:10:
[...]

In de praktijk zal het 10 tegen 1 een unsigned char zijn, het is echter gedefinieerd als een "exact width integer type",in dit geval dus een usigned variant van 8 bits.
Dus de getalwaarde (ASCII index) van een char is ongeveer hetzelfde? Int int-vorm, maar dat schuift voor de inhoud van de bits niks natuurlijk niks. Zoiets? :?

Acties:
  • 0 Henk 'm!

  • Peter
  • Registratie: Januari 2005
  • Laatst online: 13-09 17:10
Om van gewone characters naar een integer te gaan is er de Ascii Table. "9" is dus gelijk aan 57.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Orwell schreef op woensdag 09 juni 2010 @ 14:01:
Zoiets:
C++:
1
2
3
4
5
6
7
8
9
void Nogwat() {
    char final[32] = "0x";
    char buffertje[8];
    cout << "Voer wat in: ";
    cin.get(buffertje,8);
    strcat(final,buffertje);
    cout << "Uw te casten array: " << final;
    unsigned int ifinal = atoi(final);
}
Hier klopt natuurlijk geen drol van. Waarom zet je er een 0x voor? De atoi() zal vervolgens gewoon 0 returnen. Daarnaast vraagt cin.get() ook altijd 8 chars, zelfs al heb je na de 3e char op enter gedrukt.

Verbetering:
C++:
1
2
3
4
5
void Nogwat() { 
    unsigned int ifinal; 
    cout << "Voer wat in: ";
    cin >> ifinal;
}
Lunacy schreef op dinsdag 08 juni 2010 @ 23:53:
user input zal iets als "03" zijn.
Waar ik dan 0x03 van maak en dat zou ik dan in dat unsigned integer gevalletje moeten krijgen.
Ook voor jou geldt, vanwaar de 0x? Wil je de input als hexadecimaal parsen?

[ Voor 37% gewijzigd door .oisyn op 09-06-2010 15:04 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Lunacy
  • Registratie: Juni 2008
  • Laatst online: 27-10-2024
Wauw, super al die reacties! Ga straks even kijken hoever ik kom met de gemaakte suggesties!

Acties:
  • 0 Henk 'm!

  • Lunacy
  • Registratie: Juni 2008
  • Laatst online: 27-10-2024
Hoi,

had bewust geen code gegeven om jullie niet mee op het verkeerde denkpad te sturen en met een verse strat te beginnen.
Ik heb nu het volgende:
code:
1
2
3
4
5
6
7
8
uint8_t id;
char final[32] = "0x"; 
char buffertje[8]; 
std::cout << "Voer wat in: "; 
std::cin >> buffertje,8; 
strcat(final,buffertje); 
std::cout << "Uw te casten array: " << final; 
id = atoi(final);


De inhoud van de char array klopt dan en is "0x03".(Bedankt Orwell) Echter verschijnt er in de id slechts 0 na die door de atoi() te jagen.
Misschien ook nog belangrijk om te melden, nrml ken ik de inhoud van id gwoon als volgt toe: "uint8_t id = 0x03" en dat werkt prima.

Acties:
  • 0 Henk 'm!

  • Lunacy
  • Registratie: Juni 2008
  • Laatst online: 27-10-2024
.oisyn schreef op woensdag 09 juni 2010 @ 14:59:
[...]

Hier klopt natuurlijk geen drol van. Waarom zet je er een 0x voor? De atoi() zal vervolgens gewoon 0 returnen. Daarnaast vraagt cin.get() ook altijd 8 chars, zelfs al heb je na de 3e char op enter gedrukt.

Verbetering:
C++:
1
2
3
4
5
void Nogwat() { 
    unsigned int ifinal; 
    cout << "Voer wat in: ";
    cin >> ifinal;
}



[...]

Ook voor jou geldt, vanwaar de 0x? Wil je de input als hexadecimaal parsen?
Had jouw reactie niet gezien blijkbaar. aoti() geeft dus idd 0 terug.
Wil ik hem hexadecimaal parsen? 0x03 lijkt me redelijk hexadecimaal dus ik veronderstel van wel, in feite wil ik gewoon het equivalent van wat de toekenning die ik in bovenstaande post beschreef.
Dat die input char array 8 lang is maakt op zicht niet zoveel uit...

EDIT:
heb het aan de gang inmiddels:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    uint8_t id;
    char final[32] = "0x"; 
    char buffertje[8]; 
    std::cout << "Voer wat in: "; 
    std::cin >> buffertje,8; 
    strcat(final,buffertje); 
    std::cout << "Uw te casten array: " << final; 
    sscanf(final,"%X", &id);
    
    
    
    
    
    selectApplication(id);
    authenticate();
    listFiles();
    readFile(id);
    id = 0x08;
    selectApplication(id);
    authenticate();
    listFiles();
    readFile(id);


De varaiabele is nu goed ingevuld en kan hem gebruiken als parameter, echter krijg ik nu volgende fout wanneer heel bovenstaande functie is doorlopen: "Stack around the variable 'id' was corrupted."

[ Voor 27% gewijzigd door Lunacy op 09-06-2010 20:16 ]


Acties:
  • 0 Henk 'm!

  • Orwell
  • Registratie: December 2009
  • Laatst online: 08-09 22:11
@.oysin
Tsja, ik dacht dus dat er gewoon '0x' voormoest, zie de allereerste post. En te verwachten is dan dat omdat met #define wel hexadecimale tekens mogen worden gebruikt, dat atoi() dat ook wel zou pakken. Niet dus.

Zie zoals je al zag dit:
Lunacy schreef op dinsdag 08 juni 2010 @ 23:53:

user input zal iets als "03" zijn.
Waar ik dan 0x03 van maak en dat zou ik dan in dat unsigned integer gevalletje moeten krijgen.
Overigens, cin kan niks met ints. Maar we doen het nog eens, overcommented deze keer.

En inderdaad kwam er na even weer terug te converteren met itoa gewoon nul uit. Foutje.

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#includes
// Dit hieronder scheelt std:: typen constant
using namespace std;

void nogwat() {
    // Laten we eens een buffer maken, met 0x aan het begin, omdat TS dat vroeg
    char final[32] = "0x";
    // Maak een dumparray aan, lengte is eigenlijk random, maar genoeg
    char buffertje[8];
    // Logisch, blaat op scherm
    cout << "Voer wat in: ";
    // Vraag op. Was cin.get() omdat die niet afkapt bij spaties, niet echt zinnig hier
    cin >> buffertje;
    // Plak achter '0x' buffertje
    strcat(final,buffertje);
    // Even controleren van tevoren
    cout << "Uw te casten array: " << final << endl;
    // Naar een int
    uint8_t ifinal = sprintf(final,"%x");
}


Edit: (reactie op je edit :P), ja dat ja. Zo ongeveer zelfde idee. Maar ik heb natuurlijk geen idee wat je allemaal uitspookt met die uint verder he. Dus weet ik ook niet waarom je die error krijgt.

[ Voor 9% gewijzigd door Orwell op 09-06-2010 20:37 ]


Acties:
  • 0 Henk 'm!

  • Lunacy
  • Registratie: Juni 2008
  • Laatst online: 27-10-2024
Dat had ik dus inmiddels. Heb even gekeken of sprintf mijn probleem oplost van de corrupted stack. Hélaas zorgt de sprintf ervoor dat er plots "0x06" komt te staan in id ipv "0x03". Bij sscanf gaat het wel goed maar eindig ik dus met die corrupted stack...

Acties:
  • 0 Henk 'm!

  • Orwell
  • Registratie: December 2009
  • Laatst online: 08-09 22:11
Lees dit eens. Daar heeft iemand een hextoint-functie gemaakt. Zal hem wel eventjes uitproberen.

Acties:
  • 0 Henk 'm!

  • NC83
  • Registratie: Juni 2007
  • Laatst online: 21-08 21:44
Waarom lees je het getal niet gewoon als een hex getal in met cin dat is veel makkelijker dan het gebruik van sscanf.

C++:
1
2
uint x;
std::cin >> std::hex >> x;


Dit leest de waarde van de commandline als een hexadecimaal getal en plaatst de waarde in x. En als je nu de 8 minst significante bits van x in je uint8_t plaats ben je klaar.

[ Voor 13% gewijzigd door NC83 op 09-06-2010 21:18 ]

ex-FE Programmer: CMR:DiRT2,DiRT 3, DiRT Showdown, GRID 2, Mad Max


Acties:
  • 0 Henk 'm!

  • Lunacy
  • Registratie: Juni 2008
  • Laatst online: 27-10-2024
NC83 schreef op woensdag 09 juni 2010 @ 21:15:
Waarom lees je het getal niet gewoon als een hex getal in met cin dat is veel makkelijker dan het gebruik van sscanf.

C++:
1
2
uint x;
std::cin >> std::hex >> x;


Dit leest de waarde van de commandline als een hexadecimaal getal en plaatst de waarde in x. En als je nu de 8 minst significante bits van x in je uint8_t plaats ben je klaar.
Wil de user liefst maar 2 digits laten invoeren ... de sscanf oplossing werkt eigenlijk prima en kan ook niets vreemd vinden in de inhoud van de variabele, blijft beetje raadsel waarom die crasht.

Acties:
  • 0 Henk 'm!

  • Orwell
  • Registratie: December 2009
  • Laatst online: 08-09 22:11
NC83 schreef op woensdag 09 juni 2010 @ 21:15:
Waarom lees je het getal niet gewoon als een hex getal in met cin dat is veel makkelijker dan het gebruik van sscanf.

C++:
1
2
uint x;
std::cin >> std::hex >> x;


Dit leest de waarde van de commandline als een hexadecimaal getal en plaatst de waarde in x. En als je nu de 8 minst significante bits van x in je uint8_t plaats ben je klaar.
Wat zijn we eigenlijk aan het pielen geweest. |:(

Maar goed, om het nog even af te ronden. Zo kan het ook:

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void nogwat() {
    // Maak aan (duh)
    unsigned int ifinal;
    // Laten we eens een buffer maken, met 0x aan het begin, omdat TS dat vroeg
    char final[32] = "0x";
    // Maak een dumparray aan, lengte is eigenlijk random, maar genoeg
    char buffertje[8];
    // Logisch, blaat op scherm
    cout << "Voer wat in: ";
    // Vraag op. Was cin.get() omdat die niet afkapt bij spaties, niet echt zinnig hier
    cin >> buffertje;
    // Plak achter '0x' buffertje
    strcat(final,buffertje);
    // Even controleren van tevoren
    cout << "Uw te casten array: " << final << endl;
    // Leen de functie van de beste man, zie mijn vorige post
    xtoi(final,&ifinal);
    // En sla op in dat vage type
    uint8_t uifinal = ifinal;
}


Edit: Nog even een vraagje, wat heeft iedereen met constant 'std::' uittypen, dat kan toch gewoon één keer onder de include:
C++:
1
using namespace std;

[ Voor 6% gewijzigd door Orwell op 09-06-2010 21:31 . Reden: namespace blaat ]


Acties:
  • 0 Henk 'm!

  • GeniusDex
  • Registratie: Augustus 2001
  • Laatst online: 24-01 17:02

GeniusDex

Thumbs up for insanity!

Als je C++ gebruikt: gebruik stringstreams
Als je C gebruikt: gebruik strtol ipv atoi; atoi heeft niet echt een mogelijkheid om fouten te reporten en strtol wel.

Please guys, I'm trying to troll here.
If I failed to offend you in this post, please leave a message. I will address you in next post.


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 21:30

Sebazzz

3dp

Orwell schreef op woensdag 09 juni 2010 @ 21:27:
[...]

Nog even een vraagje, wat heeft iedereen met constant 'std::' uittypen, dat kan toch gewoon één keer onder de include:
C++:
1
using namespace std;
http://stackoverflow.com/...dered-a-bad-practice-in-c

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • NC83
  • Registratie: Juni 2007
  • Laatst online: 21-08 21:44
Lunacy schreef op woensdag 09 juni 2010 @ 21:25:
[...]

Wil de user liefst maar 2 digits laten invoeren ... de sscanf oplossing werkt eigenlijk prima en kan ook niets vreemd vinden in de inhoud van de variabele, blijft beetje raadsel waarom die crasht.
De 8 minst significante bits zullen nooit meer dan 255 (ofwel FF in hex) zijn. Trouwens voor je de minst significante bits in x plaats is het sowieso een goed idee om te kijken of x niet groter dan 255 is. Als de waarde groter is dan weetje dat de user meer dan 2 characters heeft ingevoerd.

@sebazz:
Dat kan inderdaad maar in een header wil je geen "using" gebruiken bij mij is het gewoon blijven hangen om de std namespace altijd te typen.

[ Voor 11% gewijzigd door NC83 op 09-06-2010 21:40 ]

ex-FE Programmer: CMR:DiRT2,DiRT 3, DiRT Showdown, GRID 2, Mad Max


Acties:
  • 0 Henk 'm!

  • Lunacy
  • Registratie: Juni 2008
  • Laatst online: 27-10-2024
Hélaas geeft jouw die xfunctie nog meer casting problemen: error C2664: 'xtoi' : cannot convert parameter 2 from 'uint8_t *__w64 ' to 'unsigned int *'

Acties:
  • 0 Henk 'm!

  • Orwell
  • Registratie: December 2009
  • Laatst online: 08-09 22:11
Lunacy schreef op woensdag 09 juni 2010 @ 21:42:
Hélaas geeft jouw die xfunctie nog meer casting problemen: error C2664: 'xtoi' : cannot convert parameter 2 from 'uint8_t *__w64 ' to 'unsigned int *'
Daarom, zie code die ik postte, maak ik eerst een unsigned int aan, die wil (pointed) wel mee naar de functie. Daarin wordt resultaat opgeslagen. Als de functie klaar is, dan wordt dat resultaat opgeslagen in een uint8_t.

Edit: heb eventjes dat namespacegedoe gelezen, en er staat dat 'using namespace std' gelijk alle namen van onderdelen van std kaapt en dat men daar geen zin in heeft. Best logisch ja. Alleen heb ik er nog nooit wat van gemerkt.

Weet ik in ieder geval iets meer om te controleren in 't geval van een vage compilerfout.

[ Voor 31% gewijzigd door Orwell op 09-06-2010 22:09 . Reden: using namespace std; ]


Acties:
  • 0 Henk 'm!

  • Lunacy
  • Registratie: Juni 2008
  • Laatst online: 27-10-2024
My bad, opgelost met xtoi()!
Bedankt allemaal

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Orwell schreef op woensdag 09 juni 2010 @ 20:24:
@.oysin
Tsja, ik dacht dus dat er gewoon '0x' voormoest, zie de allereerste post. En te verwachten is dan dat omdat met #define wel hexadecimale tekens mogen worden gebruikt, dat atoi() dat ook wel zou pakken. Niet dus.
#defines hebben er niets mee te maken. En idd, hexadecimale int literals werken met 0x, maar het zou ontzettend suf zijn als een algemene functie die user input afhandelt dat dan ook maar zo doet. Het 0x is iets voor C++ programmeurs, niet voor de mensen die van je applicatie gebruik maken. Daarom dat atoi() ook niet zoiets.
Overigens, cin kan niks met ints.
Dikke onzin, mijn code werkt gewoon. Je hoeft het écht niet eerst in een buffer te stoppen om dat vervolgens met een andere functie te gaan zitten parsen. Net als dat een ostream (zoals cout) een int kan schrijven, kan een istream (zoals cin) een int lezen. De base kun je instellen met std::hex, zoals NC83 al liet zien.

En waarom zou je een custom xtoi implementatie gebruiken als strtol() het ook gewoon kan?

[ Voor 7% gewijzigd door .oisyn op 10-06-2010 11:03 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Volledig voorbeeld (voegt weinig toe aan NC83, sorry)
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iomanip>
#include <iostream>

int main()
{
    uint8_t id;
    unsigned tmp;
    std::cin >> std::hex >> tmp >> std::dec;
    id = tmp>255 ? 255 : tmp;

    std::cout << (int)id << std::endl;

    return 0;
}

Je hebt tmp nodig omdat uint8_t een unsigned char is, and cin id dus leest als een enkel karakter. Vandaar ook de cast naar int bij het printen.

Persoonlijk vind ik het beter te checken of tmp>255 en het dan op 255 te zetten ipv id=tmp&0xFF. Feitelijk zou je dan ook moeten checken op tmp<0. :O

Vergeet niet dat als je nrs inleest met cin, je ook moet checken dat de input buffer nog valid is. Zie
http://www.parashift.com/c++-faq-lite/input-output.html

using namespace std gebruik je niet omdat dat een volledige namespace in je global namespace toevoegt, maw het wordt makkelijk om naam conflicten te krijgen.
Pagina: 1