Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: tyyppimuunnos

Sivun loppuun

sooda [24.11.2003 19:26:58]

#

noh. mites nyt tämmönen hassu... mulla on toi

int main(int argc, char *argv[])

mutta miten toi

argv[1]

siirretään long tyyppiseen muuttujaan?

sqwiik [24.11.2003 20:22:32]

#

Funktio on nimeltään sscanf ja headeri on stdio.h
Esim.

#include <stdio.h>

int main(int argn, char * argc[]){
long muuttuja;
  sscanf(argc[1], "%l", muuttuja);
  printf("Arvo: %l", muuttuja);
  return 0;
}

Markus [25.11.2003 10:11:38]

#

lainaus:

sscanf(argc[1], "%l", muuttuja);

Eikös

sscanf(argc[1], "%l", &muuttuja);

siis huomaa tuo &-merkki.

sqwiik [25.11.2003 13:10:57]

#

Damn. Oikeassa olet. Unohtui jotenkin.

sooda [25.11.2003 14:50:48]

#

Hmm... ei oikein toimi...?

#include <stdio.h>

long alku=0;
long loppu=0;
int main(int argc, char *argv[]) {

    sscanf(argv[1],"%1",&alku);
    sscanf(argv[2],"%1",&loppu);

tolleenhan sen pitäis olla...kääntyykin ja kaikkee... mutta se suorittaa laittoman toiminnon:
ALKU caused an invalid page fault in
module MSVCRT.DLL at 0137:7800272e.
Registers:
EAX=00000000 CS=0137 EIP=7800272e EFLGS=00010246
EBX=00540000 SS=013f ESP=0254fd90 EBP=0254fdb8
ECX=00000000 DS=013f ESI=81999528 FS=5acf
EDX=00000000 ES=013f EDI=00000000 GS=0000
Bytes at CS:EIP:
8b 01 ba ff fe fe 7e 03 d0 83 f0 ff 33 c2 83 c1
Stack dump:
780226cf 00000000 00000000 0040ba2d 00000000 00000049 0254fde8 0040102d 00416000 00416004 0254fdd8 00401336 00000000 00401210 00416008 0040131b

tejeez [25.11.2003 14:55:27]

#

Soodan koodissa näyttää olevan %1, senhän pitäisi olla %l ?

sooda [25.11.2003 15:05:40]

#

pieni L kirjain? joo siinä tulee toi sama laittomuus... :(

thefox [25.11.2003 15:13:44]

#

Kai sinä hyvä mies annat sille jotain parametreja :)

edit: tsekkaa argc siis

sooda [25.11.2003 15:16:28]

#

ai kato... "(NULL)" eli sen pitää siis olla jotain... Ooke!


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta