title: C++ const char* input
body: <p>I am 'rebuilding' the .NET framework but for C++ (without using the .NET framework so it will also work on other OS).</p>
  
  <p>This means I will create a class Console, and then if the method is called WriteLine in .NET framework, I call it all lowercase, split by _ (like this: write_line)</p>
  
  <p>I am now busy with read_line but I am stuck.</p>
  
  <p>I tried several things already:</p>
  
  <pre><code>static const char * read_line()
  {
      char input[256];
      std::cin &gt;&gt; input;
      return std::string(input).c_str();
  }
  
  static const char * read_line()
  {
      char input[256];
      std::cin &gt;&gt; input;
      return input;
  }
  </code></pre>
  
  <p>But both of them give out some weird characters. The first method gives out (for example):</p>
  
  <p>Your name is: ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠
  ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠
  ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠α├¶☼☺╠╠╠╠╠╠╠╠╠╠╠        ╠╠╠╠╠╠╠╠≡
        ╠╠╠╠╠╠╠╠ and your age is: ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠
  ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠
  ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠α├¶☼☺╠╠╠╠╠╠╠╠╠╠╠
      ╠╠╠╠╠╠╠╠∞       ╠╠╠╠╠╠╠╠</p>
  
  <p>The second one gives out:</p>
  
  <p>Your name is: ►       ╠╠╠╠╠╠╠╠ and your age is:     ╠╠╠╠╠╠╠╠</p>
  
  <p>What am I doing wrong? I can't get the method to return as a char array either.</p>