Xref: news2.mv.net comp.os.msdos.djgpp:8107 From: terra AT diku DOT dk (Morten Welinder) Newsgroups: comp.os.msdos.djgpp Subject: Re: Scanf doesn't work -- sure it does Date: 31 Aug 1996 15:25:50 GMT Organization: Department of Computer Science, U of Copenhagen Lines: 25 Sender: terra AT tyr DOT diku DOT dk Message-ID: <509lhu$1t0@vidar.diku.dk> References: <01bb974a$24b5f820$24c5b7c7 AT platko DOT ix DOT netcom DOT com> NNTP-Posting-Host: tyr.diku.dk To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp "Bob Platko" writes: >My code works fine in Borland, but not in DJGPP! What's wrong? Your program. If you compile your program with "gcc -Wall -O2 -c foo.c" you will see foo.c: In function `main': foo.c:16: warning: unsigned int format, different type arg (arg 2) foo.c:18: warning: unsigned int format, different type arg (arg 2) foo.c:48: warning: implicit declaration of function `getch' So you are passing a pointer to the wrong kind of object to scanf(). Therefore scanf() overwrites memory you did not mean to. Nuke the "short" and you will have a correct program. Morten PS: There are some problems with scanf() if I remember things right. They have to do with the return value and are being worked on or have already been solved for the next release.