<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>C++ Tutorial - While Loops</title><link>/technologies/code_exchange/b/blog/posts/c-tutorial---while-loops</link><description>IntroductionIn the previous tutorial , we learned how to make our code more concise and flexible by using for loops. In this tutorial, we will learn about another kind of loop: the while loop. We will use this loop to make our code more robust b...</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: C++ Tutorial - While Loops</title><link>https://community.element14.com/technologies/code_exchange/b/blog/posts/c-tutorial---while-loops</link><pubDate>Thu, 31 Aug 2017 06:55:26 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:cf463817-822e-4b96-8e83-ec3b3cba8998</guid><dc:creator>mjahpi</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Hello;&amp;nbsp; I have a concern with your use of &amp;quot;cin.gcount()&amp;quot;.&amp;nbsp; I have made a few modifications to your code to illustrate my concern.&amp;nbsp; For consistency and testing , I set the secret number to always be five (5).&amp;nbsp; I have also added a few &amp;quot;cout &amp;lt;&amp;lt;&amp;quot; statements to ensure my guess, also always five (5), is correctly assigned by your statement &amp;quot;cin &amp;gt;&amp;gt; guess;&amp;quot; and to examine&amp;nbsp; the value of &amp;quot;cin.gcount()&amp;quot;.&amp;nbsp; it is examined immediately after your &amp;quot;cin &amp;gt;&amp;gt; guess;&amp;quot; statement.&amp;nbsp; here a portion of the modified code.&amp;nbsp; Note: my changes are left justified for clarity.&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;int main()&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Randomly generate a secret number&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srand((unsigned int) time(NULL));&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int num = (rand() % 10) + 1;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int num_guesses = 3;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Print out number first (used for debugging purposes, no cheating!)&lt;/p&gt;&lt;p&gt;num = 5;&lt;/p&gt;&lt;p&gt;cout &amp;lt;&amp;lt; &amp;quot;Secret num is : &amp;quot; &amp;lt;&amp;lt; num &amp;lt;&amp;lt; endl;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Game intro&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; &amp;quot;I&amp;#39;m thinking of a secret number (1 - 10), can you guess it?&amp;quot; &amp;lt;&amp;lt; endl;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; num_guesses; i++)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int guess = 0;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Read in guess&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (guess &amp;lt; 1 || guess &amp;gt; 10)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; &amp;quot;Guess a number between 1 and 10? &amp;quot;;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cin &amp;gt;&amp;gt; guess;&lt;/p&gt;&lt;p&gt;cout &amp;lt;&amp;lt; &amp;quot;cin.gcount is : &amp;quot; &amp;lt;&amp;lt; cin.gcount() &amp;lt;&amp;lt; endl;&lt;/p&gt;&lt;p&gt;cout &amp;lt;&amp;lt; &amp;quot;Guess is&amp;nbsp; : &amp;quot; &amp;lt;&amp;lt; guess &amp;lt;&amp;lt; endl;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(cin.gcount() != 1)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p&gt;cout &amp;lt;&amp;lt; &amp;quot;in here (!= 1) , cin.gcount is : &amp;quot; &amp;lt;&amp;lt; cin.gcount() &amp;lt;&amp;lt; endl;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cin.clear();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cin.ignore(numeric_limits&amp;lt;int&amp;gt;::max(), &amp;#39;\n&amp;#39;);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;CONTINUES UNCHANGED&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;My output:&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Secret num is : 5&lt;/p&gt;&lt;p&gt;I&amp;#39;m thinking of a secret number (1 - 10), can you guess it?&lt;/p&gt;&lt;p&gt;Guess a number between 1 and 10? 5&amp;nbsp;&amp;nbsp; Note:&amp;nbsp; the 5 after the question mark is my input&lt;/p&gt;&lt;p&gt;cin.gcount is : 0&lt;/p&gt;&lt;p&gt;Guess is&amp;nbsp; : 5&lt;/p&gt;&lt;p&gt;in here (!= 1) , cin.gcount is : 0&lt;/p&gt;&lt;p&gt;Correct, my secret number was 5&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;You can see that despite the correct answer provided &amp;quot;cin.gcount() returns &amp;quot;0&amp;quot; rather than &amp;quot;1&amp;quot; as suggested in your code.&amp;nbsp; &lt;/p&gt;&lt;p&gt;Comments?&amp;nbsp; &lt;/p&gt;&lt;p&gt;Regards, Mark Hache&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=14937&amp;AppID=74&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>