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?
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; }
lainaus:
sscanf(argc[1], "%l", muuttuja);
Eikös
sscanf(argc[1], "%l", &muuttuja);
siis huomaa tuo &-merkki.
Damn. Oikeassa olet. Unohtui jotenkin.
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
Soodan koodissa näyttää olevan %1, senhän pitäisi olla %l ?
pieni L kirjain? joo siinä tulee toi sama laittomuus... :(
Kai sinä hyvä mies annat sille jotain parametreja :)
edit: tsekkaa argc siis
ai kato... "(NULL)" eli sen pitää siis olla jotain... Ooke!
Aihe on jo aika vanha, joten et voi enää vastata siihen.