Categories

See More
Popular Forum

MBA (4887) B.Tech (1769) Engineering (1486) Class 12 (1030) Study Abroad (1004) Computer Science and Engineering (988) Business Management Studies (865) BBA (846) Diploma (746) CAT (651) B.Com (648) B.Sc (643) JEE Mains (618) Mechanical Engineering (574) Exam (525) India (462) Career (452) All Time Q&A (439) Mass Communication (427) BCA (417) Science (384) Computers & IT (Non-Engg) (383) Medicine & Health Sciences (381) Hotel Management (373) Civil Engineering (353) MCA (349) Tuteehub Top Questions (348) Distance (340) Colleges in India (334)
See More

Why is it “bad” to use cin for numeric variables? [closed]

Course Queries Syllabus Queries

Max. 2000 characters
Replies

usr_profile.png

User

( 4 months ago )

My current professor states on his syllabus:

"Never use cin >> to read directly into a numeric variable, like int or double or float. Read as a string (C or C++) and convert to a number using atoi or atof."

Is there a reason for this? At first I thought it is to avoid fail flags but if you just add input validation code isn't it fine to "cin >> myInt"?

Using his method, if they entered "4a5" and I did atoi wouldn't it still throw an error?

Thanks~

usr_profile.png

User

( 4 months ago )

In general, there is nothing wrong with it at all. This advice would seem to be wrong.

In fact, by relying solely on stoi and friends, you lose any ability to control the conversion process. You might want to use these in some very domain-specific cases where you want to extract a specific number of characters and then attempt to convert them, but that's down to business logic.

Certainly, relying on antiquated code like atoi is even worse, what with its undefined behaviour on encountering many failure cases.

what's your interest


forum_ban8_5d8c5fd7cf6f7.gif