title: Pre-processor parsing on C++
body: <p>If we want to use user input to do something in a program, or print a result we need to </p>
  
  <pre><code> #include &lt;iostream&gt;
  </code></pre>
  
  <p>otherwise, <code>cout</code> and <code>cin</code> will not be acknowledged by the compiler.However the command <code>#include</code> is a pre-processor command. And when I was writing my program the following happened. I wrote the following code :</p>
  
  <pre><code>#define PRINT_DEBUG_INFO(a) {cout &lt;&lt; “Info: ” &lt;&lt; a &lt;&lt; endl;}
  #include &lt;iostream&gt;
  </code></pre>
  
  <p>And no errors popped up.How is it possible to use <code>cout</code> before including <code>iostream</code>? Even if I declare the <code>PRINT_DEBUG_INFO(a)</code> without including  <code>iostream</code>, I don't get a compiling error.<br>
  Can somebody explain me why this happens?</p>