| | |
help plz
![]() |
•
•
Join Date: Oct 2007
Posts: 26
Reputation:
Solved Threads: 0
C++ Syntax (Toggle Plain Text)
int main() { cout << "This Program was written by Nehal Shah\n" << endl; int num, total; cout << "Please enter an integer number:\t\t\t"; cin >> num; while ( num < 0 ) { cout << "\t********************************\n"; cout << "\t********** ERROR *************\n"; cout << "\t********************************\n"; cout << " --------------------------------------\n"; cout << " Only input a positive integer number\n"; cout << " --------------------------------------\n\n"; cout << "Please enter the number again:\t\t\t"; cin >> num; } for (int total = num; total <= num; num++) cout << "The sum of all number from 1 up to " << num << " is:\t"; cout << (num+ num) << endl; system("PAUSE"); return 0; }
Last edited by Narue; Oct 5th, 2007 at 4:17 pm. Reason: Code tags added.
Well, either your math is off or your logic is off. Maybe a complete example will help clear things up:
C++ Syntax (Toggle Plain Text)
#include <iostream> #include <ios> #include <limits> int main() { int limit; std::cout<<"This Program was written by Julienne Walker\n\n"; std::cout<<"Please enter a positive upper limit (exclusive): "; while ( !( std::cin>> limit ) || limit < 0 ) { // Correct truly invalid input as well as negative values std::cin.clear(); std::cin.ignore ( std::numeric_limits<std::streamsize>::max(), '\n' ); std::cout<<"Error, invalid input. Please enter a positive number: "; } if ( !std::cin.eof() ) { int sum = 0; for ( int i = 1; i < limit; i++ ) sum += i; std::cout<<"The sum of [1,"<< limit <<") is "<< sum <<'\n'; } }
I'm here to prove you wrong.
C++ Syntax (Toggle Plain Text)
for ( int i = 1; i < limit; i++ ) sum += i;
C++ Syntax (Toggle Plain Text)
for ( int i = 1; i <= limit; i++ ) sum += i;
Though it's not much of problem -_- cause you mentioned it was an example not the actual program. Anyways, that's not my problem here, I tried this in Visual Studio C++ 2008 (express Edition) but
std::cin.get(); didn't halt the screen. In other treads you mentioned that it's good to stop the screen and that getch(); shouldn't be used since it's actually a compiler extension. In order to get std::cin.get(); to work, I had to include std::cin.ignore(); before using it. I just want to know if it's alright to use it. Does doing so makes it use more memory? I just recently returned to C++ and found that the standardization has changed -_- I last did C++ like 7 -8 years before. Gwad!@koolboy
Your program will never give the total because there is nowhere where you are actually adding the numbers. it will just continue to print the same again and again, till the memory is lost (i guess). It's only incrementing the num variable and nothing else.
if you want the same program in a simple format it's here. it's actually the same one Naure wrote, but since I haven't done <limits> and <ios> so, I simplified it to make myself understand it. lame i know..
C++ Syntax (Toggle Plain Text)
#include <iostream> using namespace std; int main() { int limit; cout<<"This Program was written by Julienne Walker\n\n"; cout<<"Edited by ChaseVoid"<<endl; cout<<"Please enter a positive upper limit (exclusive): "; while ( !( cin>> limit ) || limit < 0 ) { // Correct truly invalid input as well as negative values cout<<"Error, invalid input. Please enter a positive number: "; } int sum = 0; for ( int i = 1; i <= limit; i++ ) sum += i; cout<<"The sum of [1 - "<< limit <<"] is "<< sum <<'\n'; cin.ignore(); cin.get(); }
Sorry Narue for editing it without asking. Please point out what more errors are there. ( I mean Standard syntax wise).
Last edited by ChaseVoid; Oct 7th, 2007 at 5:26 am.
>Though it's not much of problem -_-
It's not a problem at all, just a different design. My program prints an open range [0,n), not a closed range [0,n] like yours. Notice how the prompt specified that the upper limit is exclusive.
>I tried this in Visual Studio C++ 2008 (express Edition)
>but std::cin.get(); didn't halt the screen.
It really doesn't matter what compiler you use. Mixing formatted and unformatted input will consistently give you problems.
>In order to get std::cin.get(); to work, I had to include std::cin.ignore(); before using it.
You're on the right path, but just ignoring a single character doesn't always work. Check out this thread for details on how to robustly clean up the input stream.
>I just want to know if it's alright to use it.
That's a different issue entirely, and it depends on how your program will be used. This whole solution (cleaning up the stream and then pausing) is really only useful if you're running the program interactively in an owned window and the window closes when the program terminates. If you plan to run the program from the command line then the solution becomes an annoyance. Even worse, if you want your program to be used as a filter, it can get kind of messy.
>I last did C++ like 7 -8 years before.
C++ was standardized in 1998 and most of the pieces were known and implemented for years before that.
But I know what you meant.
>Sorry Narue for editing it without asking.
While I appreciate it, there's no need to apologize. Any code I post is free for use however you like.
>Please point out what more errors are there.
Well, the big thing is that you remove the error correction code in the loop. Type a letter instead of a numeric digit and watch it run until the heat death of the universe.
It's not a problem at all, just a different design. My program prints an open range [0,n), not a closed range [0,n] like yours. Notice how the prompt specified that the upper limit is exclusive.

>I tried this in Visual Studio C++ 2008 (express Edition)
>but std::cin.get(); didn't halt the screen.
It really doesn't matter what compiler you use. Mixing formatted and unformatted input will consistently give you problems.
>In order to get std::cin.get(); to work, I had to include std::cin.ignore(); before using it.
You're on the right path, but just ignoring a single character doesn't always work. Check out this thread for details on how to robustly clean up the input stream.
>I just want to know if it's alright to use it.
That's a different issue entirely, and it depends on how your program will be used. This whole solution (cleaning up the stream and then pausing) is really only useful if you're running the program interactively in an owned window and the window closes when the program terminates. If you plan to run the program from the command line then the solution becomes an annoyance. Even worse, if you want your program to be used as a filter, it can get kind of messy.
>I last did C++ like 7 -8 years before.
C++ was standardized in 1998 and most of the pieces were known and implemented for years before that.
But I know what you meant.>Sorry Narue for editing it without asking.
While I appreciate it, there's no need to apologize. Any code I post is free for use however you like.
>Please point out what more errors are there.
Well, the big thing is that you remove the error correction code in the loop. Type a letter instead of a numeric digit and watch it run until the heat death of the universe.
I'm here to prove you wrong.
>Notice how the prompt specified that the upper limit is exclusive.
Oh! I see so those were on purpose. lol, and silly me, I though it was a type-o..
>only useful if you're running the program interactively
>and the window closes when the program terminates.
>it can get kind of messy.
Exactly, the only reason, I use it is to halt the comand promt after the execution of the code and nothing much. I know what you mean about getting messy. >_< It's just bums out, when you start seaching the whole program for error, only to notic after a long time it's that minute thing which becomes too big of a deal. And C/C++ being case-sensitive we need to really be careful.
>C++ was standardized in 1998
Waa... NOW that's NEW's to me, I read somewhere that it was changed in 2003, but still in my class books they are still usuing
A question, was namespace std also there in the 1998 Standardization? Ooops, I should do that my self. ><..
>Type a letter instead of a numeric digit and watch it run until the heat death of the universe.
Haahaa, yeah totally, >_< it's so effin' annoying, it won't just halt or show error, just continue to print like rabid rats. (BTW, Eww rats) Sorry I didn't got that part, cause as I stated before I haven't completed my C++ so yeah.. :blush: ^///^ heheh.. Well, that's a nice info I got.
I get it now..
This will actually exclude everything else after the assigned default numeric limit set by the compiler. But still I don't understand the actual function, that how this code is executing. uh! I soo need to study more, off I'm to the thread to clean. xDD
Oh! I see so those were on purpose. lol, and silly me, I though it was a type-o..
>only useful if you're running the program interactively
>and the window closes when the program terminates.
>it can get kind of messy.
Exactly, the only reason, I use it is to halt the comand promt after the execution of the code and nothing much. I know what you mean about getting messy. >_< It's just bums out, when you start seaching the whole program for error, only to notic after a long time it's that minute thing which becomes too big of a deal. And C/C++ being case-sensitive we need to really be careful.
>C++ was standardized in 1998
Waa... NOW that's NEW's to me, I read somewhere that it was changed in 2003, but still in my class books they are still usuing
#include<iostream.h>. It's so annoying, when you try to compile it and it goes around showing weird errors, and like everyone there gpes around about bitching that the compiler is corrupted. They are ONLY using int main() because GPP doesn't support the void return value. But the actual problem is that, as you stated earlier that, retuning nothing ain't an option.A question, was namespace std also there in the 1998 Standardization? Ooops, I should do that my self. ><..
>Type a letter instead of a numeric digit and watch it run until the heat death of the universe.
Haahaa, yeah totally, >_< it's so effin' annoying, it won't just halt or show error, just continue to print like rabid rats. (BTW, Eww rats) Sorry I didn't got that part, cause as I stated before I haven't completed my C++ so yeah.. :blush: ^///^ heheh.. Well, that's a nice info I got.
I get it now..
C++ Syntax (Toggle Plain Text)
std::cin.ignore ( std::numeric_limits<std::streamsize>::max(), '\n' );
Last edited by ChaseVoid; Oct 7th, 2007 at 1:12 pm.
>I read somewhere that it was changed in 2003
The C++ standard was first ratified in 1998, and updated slightly in 2003. With any luck, a bigger revision will be finished in 2008 sometime.
>A question, was namespace std also there in the 1998 Standardization?
Yes.
>But still I don't understand the actual function, that how this code is executing.
It's pretty simple, actually. If you translated it to C, you'd get something like this:
That's assuming streamsize equates to size_t, which isn't required.
The C++ standard was first ratified in 1998, and updated slightly in 2003. With any luck, a bigger revision will be finished in 2008 sometime.
>A question, was namespace std also there in the 1998 Standardization?
Yes.
>But still I don't understand the actual function, that how this code is executing.
It's pretty simple, actually. If you translated it to C, you'd get something like this:
C++ Syntax (Toggle Plain Text)
#include <stdio.h> // cin.ignore ( numeric_limits<streamsize>::max(), '\n' ); size_t i; for ( i = 0; i < (size_t)-1; i++ ) { int ch = getchar(); if ( ch == EOF || ch == '\n' ) break; }
I'm here to prove you wrong.
>The C++ standard was first ratified in 1998,
WOW.. I so didn't knew about that. I should sue them for not teaching me the correct syntax >_< but then again, I should also have researched more
(
>a bigger revision will be finished in 2008 sometime.
That;s great, hopefully it'll be also fun to learn all the new changes and the added features.
>It's pretty simple
>translated it to C
Oh! thankx, now I understand it. We are checking, whether it's in integer limit and excluding the characters. Cool. It really helps to, translate the hard to get parts into C. I'll remember this handy trick, for the future. Thank you. ^///^
WOW.. I so didn't knew about that. I should sue them for not teaching me the correct syntax >_< but then again, I should also have researched more
( >a bigger revision will be finished in 2008 sometime.
That;s great, hopefully it'll be also fun to learn all the new changes and the added features.
>It's pretty simple
>translated it to C
Oh! thankx, now I understand it. We are checking, whether it's in integer limit and excluding the characters. Cool. It really helps to, translate the hard to get parts into C. I'll remember this handy trick, for the future. Thank you. ^///^
![]() |
Similar Threads
- can someone plz help me with this? (Visual Basic 4 / 5 / 6)
- I NEED SUPPORT **"IMPORTANT"** PLZ HELP (Windows NT / 2000 / XP)
- Windows media player (Windows NT / 2000 / XP)
- Bridge.dll...Make it go away, Plz (Viruses, Spyware and other Nasties)
- can sum1 look @ dis plz (Viruses, Spyware and other Nasties)
- Hijackthis log file - plz help (Viruses, Spyware and other Nasties)
- IE not working...PLZ help :cry: (Web Browsers)
- PLZ help it's urgent! (Web Browsers)
- plz help ppl...... (Computer Science)
Other Threads in the C++ Forum
- Previous Thread: Closing external applications
- Next Thread: system command for exiting program
| Thread Tools | Search this Thread |
action api array auto based beginner binary bitmap c++ c/c++ calculator challenge char class classes code coding compile console conversion count createcopyofanyfileinc delete deploy desktop developer directshow dll download dynamic dynamiccharacterarray email encryption error file forms fstream function functions game garbage givemetehcodez graph gui hmenu homeworkhelp homeworkhelper iamthwee ifstream input insert int integer java lib linkedlist linker loop looping loops map math matrix memory multiple news node noob output parameter pointer primenumbersinrange problem program programming project python random read recursion reference rpg sockets string strings temperature template test text text-file tree url variable vector video win32 windows winsock wordfrequency wxwidgets






