From: <jua...@ya...> - 2001-05-30 00:23:57
|
Hello: Can anybody help me with a newbie question? I have a problem using Bloodshed Dev-C++ 4, and as Mingw is the underlying compiler I thought this is the right place to ask. Also I've put my question in http://sourceforge.net/forum/ whithout success. I'm using Dev-C++/Mingw to compile simple C applications. My problem is that I'm unable to make functions like scanf, gets, or getchar read an "end of file" from the keyboard. When I type Ctrl+Z the program aborts suddenly. Here's a simple example: #include <stdio.h> main() { int r = 0; float prize = 0; printf("Prize: "); r = scanf("%g", &prize); if (r == EOF) printf("End.\n"); else printf("%g\n", prize); } As you know, when scanf tryes to read an "end of file" it returns the constant EOF defined in stdio.h. When I type Ctrl+Z the program aborts suddenly without printing "End.". At first I thought it was a problem of the Windows' DOS Console; but I compiled the same code with DJGPP and works fine. Thank you for your time. _______________________________________________________________ Do You Yahoo!? Yahoo! Messenger: Comunicación instantánea gratis con tu gente - http://messenger.yahoo.es |
From: Greg C. <chi...@mi...> - 2001-05-30 01:35:50
|
Juan Pampillon wrote: > > I'm using Dev-C++/Mingw to compile simple C > applications. My problem is that I'm unable to make > functions like scanf, gets, or getchar read an "end of > file" from the keyboard. When I type Ctrl+Z the > program aborts suddenly. Here's a simple example: [snip code that uses scanf()] > As you know, when scanf tryes to read an "end of file" > it returns the constant EOF defined in stdio.h. When I > type Ctrl+Z the program aborts suddenly without > printing "End.". At first I thought it was a problem > of the Windows' DOS Console; but I compiled the same > code with DJGPP and works fine. I have reproduced that behavior. I don't know why it happens. I never use scanf(). "Why does everyone say not to use scanf? What should I use instead?" http://www.eskimo.com/~scs/C-faq/q12.20.html To see thousands of articles about this, go here http://groups.google.com/advanced_group_search and search for scanf in the newsgroup alt.comp.lang.learn.c-c++ By the way, try compiling with '-Wall'; you'll get a warning that the return value of main() isn't specified and no return value is given. This may not be a problem right now, but it makes your code less portable and in fact doesn't conform to the latest ISO standard. |
From: <jua...@ya...> - 2001-06-03 21:08:37
|
--- Greg Chicares <chi...@mi...> escribió: > Juan Pampillon wrote: > > > > I'm using Dev-C++/Mingw to compile simple C > > applications. My problem is that I'm unable to > make > > functions like scanf, gets, or getchar read an > "end of > > file" from the keyboard. When I type Ctrl+Z the > > program aborts suddenly. Here's a simple example: > > [snip code that uses scanf()] > > > As you know, when scanf tryes to read an "end of > file" > > it returns the constant EOF defined in stdio.h. > When I > > type Ctrl+Z the program aborts suddenly without > > printing "End.". At first I thought it was a > problem > > of the Windows' DOS Console; but I compiled the > same > > code with DJGPP and works fine. > > I have reproduced that behavior. > > I don't know why it happens. I never use scanf(). > > "Why does everyone say not to use scanf? > What should I use instead?" > http://www.eskimo.com/~scs/C-faq/q12.20.html > > To see thousands of articles about this, go here > http://groups.google.com/advanced_group_search > and search for > scanf > in the newsgroup > alt.comp.lang.learn.c-c++ > > By the way, try compiling with '-Wall'; you'll get a > warning that the return value of main() isn't > specified > and no return value is given. This may not be a > problem > right now, but it makes your code less portable and > in fact doesn't conform to the latest ISO standard. Thank you for your answer. I've been readin about scanf in the comp.lang.c FAQ and I've found many articles on scanf through google groups. It was all new to me. I've had many problems with scanf and now I see I'm not the only one. I'll try to replace scanf as soon as I can. By now I'm a beginner to C and I have few spare functions to use instead of scanf. Still, I'm more puzzled about my problem: I had an answer in the Dev-C++ forum telling me that the code works as expected when run on Windows 2000, http://sourceforge.net/forum/forum.php?forum_id=48211 and also one from the MinGW-users list that don't say in which OS; but that the program runs as expected. I've found a curious question in comp.lang.c, 27 Aug 2000, "How to signal EOF in Borland C++ version 5" http://groups.google.com/groups?hl=es&lr=&safe=off&ic=1&th=d2e967392621a712,17 in which a bug in Borland C++ version 5 is discussed (and the OS is Windows 98!). I've also found a similar question in the MinGW-users list (10/17/2000, by Jim Sheetz) http://www.geocrawler.com/archives/3/6013/2000/10/50/4513603/ I'd like to know on what OS you ran my code, and also if you compilet it on Dev-C++ or MinGW directly and which version. Thank you for your time and your advice about using int main(). Juan. _______________________________________________________________ Do You Yahoo!? Yahoo! Messenger: Comunicación instantánea gratis con tu gente - http://messenger.yahoo.es |
From: Greg C. <chi...@mi...> - 2001-06-03 23:51:27
|
Juan Pampillon wrote: > > [snip discussion of scanf problem] > I'd like to know on what OS you ran my code, and also > if you compilet it on Dev-C++ or MinGW directly and > which version. win95 OSR 2 mingw gcc-2.95.2-1, command line, no dev-c++ |
From: Steve D. P. <mai...@st...> - 2001-05-30 20:23:32
|
> Can anybody help me with a newbie question? > I have a problem using Bloodshed Dev-C++ 4, and as > Mingw is the underlying compiler I thought this is the > right place to ask. Also I've put my question in > http://sourceforge.net/forum/ whithout success. Sheesh dude, you didn't even wait 24 hours for a response on the Dev-C++ forum (the URL for which, by the way, is actually http://sourceforge.net/forum/?group_id=10639 ). You've got a response up now (although it basically mirrors what other people have also said on this mailing list today). |