Avatar billede trp79 Nybegynder
04. oktober 2002 - 14:04 Der er 6 kommentarer og
2 løsninger

Type casting

Når man læser en linie med "%s", hvordan typercaster man så denne til en "char *a" ? eller hvordan opretter man en string som %s, ligesom man erklærer en "int q", som kan læses som "%d" ?
Avatar billede jpk Nybegynder
04. oktober 2002 - 14:08 #1
Jeg er ikke helt med, kan du prøve at beskrive på en anden måde hvad du vil?
Avatar billede soepro Nybegynder
04. oktober 2002 - 14:37 #2
Sådan her:

char streng[25];
int  q;

scanf("%.25s", streng);
scanf("%d", q);
Avatar billede trp79 Nybegynder
04. oktober 2002 - 17:12 #3
Det er i forbindelse med message passing jeg bruger det. En message modtager jeg som "%s"(kan den sendes og modtages på andre måder?), men jeg har brug for det som "char *a". Hvordan typer caster jeg %s til en char *b?
Avatar billede kamikaze Nybegynder
07. oktober 2002 - 09:18 #4
Jamen, %s er IKKE en type, det er en formateringsnotation.
Avatar billede soepro Nybegynder
07. oktober 2002 - 10:44 #5
trp79 >> Prøv lige at poste koden, så vi kan se hvad du prøver på - som kamikaze siger, så er %s en printf/scanf formateringsnotation, der dækker over en pointer til et char array. (Dvs. en nul-termineret char-streng.)

Windows selv er skrevet i C, så de messages du får tilbage fra Windows ER også char-strenge, dvs. analoge til streng[25] ovenfor. (Som jo altså kan indeholde 24 tegn + nul-terminering.)
Avatar billede kamikaze Nybegynder
07. oktober 2002 - 10:50 #6
Dvs. %s henviser til typen char* så der er ikke noget der skal konverteres.
Avatar billede kamikaze Nybegynder
07. oktober 2002 - 10:53 #7
char streng[25]; // En pointer der peger på 25 bytes memory
//...
char tekst[25];
char* streng = &tekst;// En pointer der peger på 25 bytes memory
char* streng2; // En pointer, der ikke peger nogen steder hen
Avatar billede trp79 Nybegynder
07. oktober 2002 - 18:18 #8
Koden omhandler Message Passing og Semafor. Jeg har fundet ud af det, og det var faktisk en pinlig fejl. Det kræver en lidt længere udredelse men det var noget med at jeg sendte en streng med et linieskift i beskeden. Det var dette linieskift der ikke skulle være sendt med over til den anden proces.
Anyway, jeg er blevet lidt klogere hvad angår strenge, så i får tak :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester