<section name="Source Code">
  <section name="enterInt.h">
    <cpp>
<cppln>&#160; &#160;1</cppln><cppcmt>// enterInt.h</cppcmt><br/>
<cppln>&#160; &#160;2</cppln><cppcmt>// Written by a group of students from section 1 of the Winter 2000-2001</cppcmt><br/>
<cppln>&#160; &#160;3</cppln><cppcmt>//&#160; &#160;offering of CS-182.</cppcmt><br/>
<cppln>&#160; &#160;4</cppln><cppcmt>// Date: 2-6-2001</cppcmt><br/>
<cppln>&#160; &#160;5</cppln><cppcmt>// This function will display &quot;prompt&quot; which should ask for an integer</cppcmt><br/>
<cppln>&#160; &#160;6</cppln><cppcmt>//&#160; &#160;and then allow the user to make an entry.</cppcmt><br/>
<cppln>&#160; &#160;7</cppln><cppcmt>//&#160; &#160;If the beginning of the entry is a valid integer value, the</cppcmt><br/>
<cppln>&#160; &#160;8</cppln><cppcmt>//&#160; &#160;function returns the value.&#160; If not, the function will repeat</cppcmt><br/>
<cppln>&#160; &#160;9</cppln><cppcmt>//&#160; &#160;displaying the prompt and accepting the user&apos;s entry until</cppcmt><br/>
<cppln>&#160; 10</cppln><cppcmt>//&#160; &#160;a valid integer value is entered.</cppcmt><br/>
<cppln>&#160; 11</cppln><cppkey>int</cppkey> getInt(<cppkey>const</cppkey> string&amp; prompt);<br/>
    </cpp>
  </section>
  <section name="main.cpp">
    <cpp>
<cppln>&#160; &#160;1</cppln><cppcmt>// main.cpp</cppcmt><br/>
<cppln>&#160; &#160;2</cppln><cppcmt>// Written by: Dr. Taylor, taylor@msoe.edu</cppcmt><br/>
<cppln>&#160; &#160;3</cppln><cppcmt>// Date: 2-15-2001</cppcmt><br/>
<cppln>&#160; &#160;4</cppln><cppcmt>// This program demonstrates the use of the enterInt function which</cppcmt><br/>
<cppln>&#160; &#160;5</cppln><cppcmt>//&#160; &#160;will error check the user&apos;s entry to ensure that a valid</cppcmt><br/>
<cppln>&#160; &#160;6</cppln><cppcmt>//&#160; &#160;integer value is entered.</cppcmt><br/>
<cppln>&#160; &#160;7</cppln><br/>
<cppln>&#160; &#160;8</cppln><cppkey>#include</cppkey> &lt;iostream&gt;<br/>
<cppln>&#160; &#160;9</cppln><cppkey>#include</cppkey> &lt;string&gt;<br/>
<cppln>&#160; 10</cppln><cppkey>#include</cppkey> &quot;enterInt.h&quot;<br/>
<cppln>&#160; 11</cppln><br/>
<cppln>&#160; 12</cppln><cppkey>using</cppkey> std::cout;<br/>
<cppln>&#160; 13</cppln><cppkey>using</cppkey> std::string;<br/>
<cppln>&#160; 14</cppln><br/>
<cppln>&#160; 15</cppln><cppkey>int</cppkey> main()<br/>
<cppln>&#160; 16</cppln>{<br/>
<cppln>&#160; 17</cppln>&#160; &#160;string prompt=&quot;Please enter your age&quot;;<br/>
<cppln>&#160; 18</cppln>&#160; &#160;cout &lt;&lt; &quot;It looks like you are &quot; &lt;&lt; enterInt(prompt) &lt;&lt; &quot;years old\n&quot;;<br/>
<cppln>&#160; 19</cppln><br/>
<cppln>&#160; 20</cppln>&#160; &#160;<cppkey>return</cppkey> 0;<br/>
<cppln>&#160; 21</cppln>}<br/>
    </cpp>
  </section>
  <section name="enterInt.cpp">
    <cpp>
<cppln>&#160; &#160;1</cppln><cppcmt>/* enterInt.cpp<br/>
<cppln>&#160; &#160;2</cppln>/* Written by a group of students from section 1 of the Winter 2000-2001<br/>
<cppln>&#160; &#160;3</cppln>/* &#160; &#160;offering of CS-182.<br/>
<cppln>&#160; &#160;4</cppln>/* Date: 2-6-2001<br/>
<cppln>&#160; &#160;5</cppln>/* This function will display &quot;prompt&quot; which should ask for an integer<br/>
<cppln>&#160; &#160;6</cppln>/* &#160; &#160;and then allow the user to make an entry.<br/>
<cppln>&#160; &#160;7</cppln>/* &#160; &#160;If the beginning of the entry is a valid integer value, the<br/>
<cppln>&#160; &#160;8</cppln>/* &#160; &#160;function returns the value.&#160; If not, the function will repeat<br/>
<cppln>&#160; &#160;9</cppln>/* &#160; &#160;displaying the prompt and accepting the user&apos;s entry until<br/>
<cppln>&#160; 10</cppln>/* &#160; &#160;a valid integer value is entered.<br/>
<cppln>&#160; 11</cppln>*/</cppcmt><br/>
<cppln>&#160; 12</cppln><cppkey>#include</cppkey> &lt;iostream&gt;<br/>
<cppln>&#160; 13</cppln><cppkey>#include</cppkey> &lt;string&gt;<br/>
<cppln>&#160; 14</cppln><br/>
<cppln>&#160; 15</cppln><cppkey>using</cppkey> std::cout;<br/>
<cppln>&#160; 16</cppln><cppkey>using</cppkey> std::endl;<br/>
<cppln>&#160; 17</cppln><cppkey>using</cppkey> std::getline;<br/>
<cppln>&#160; 18</cppln><cppkey>using</cppkey> std::string;<br/>
<cppln>&#160; 19</cppln><br/>
<cppln>&#160; 20</cppln><cppkey>int</cppkey> enterInt(<cppkey>const</cppkey> string&amp; prompt)<br/>
<cppln>&#160; 21</cppln>{<br/>
<cppln>&#160; 22</cppln>&#160; &#160;string input;<br/>
<cppln>&#160; 23</cppln>&#160; &#160;<cppkey>int</cppkey> retVal;<br/>
<cppln>&#160; 24</cppln>&#160; &#160;<cppkey>bool</cppkey> done = false;<br/>
<cppln>&#160; 25</cppln>&#160; &#160;<cppkey>do</cppkey> {<br/>
<cppln>&#160; 26</cppln>&#160; &#160; &#160; cout &lt;&lt; prompt &lt;&lt; endl;<br/>
<cppln>&#160; 27</cppln>&#160; &#160; &#160; getline(cin, input);<br/>
<cppln>&#160; 28</cppln>&#160; &#160; &#160; istringstream istr(input);<br/>
<cppln>&#160; 29</cppln>&#160; &#160; &#160; <cppkey>if</cppkey>(!(istr &gt;&gt; retVal)) {<br/>
<cppln>&#160; 30</cppln>&#160; &#160; &#160; &#160; &#160;done = true;<br/>
<cppln>&#160; 31</cppln>&#160; &#160; &#160; }<br/>
<cppln>&#160; 32</cppln>&#160; &#160;} <cppkey>while</cppkey>(!done);<br/>
<cppln>&#160; 33</cppln>&#160; &#160;<cppkey>return</cppkey> retVal;<br/>
<cppln>&#160; 34</cppln>}<br/>
    </cpp>
  </section>
</section>
