title: Converting text file to constant char pointer
body: <p>I wanted to write a simple function that will take a file name as an argument and then return a constant char pointer that contains the characters in the text file.</p>
  
  <pre><code>#include &lt;fstream&gt;
  #include &lt;vector&gt;
  #include &lt;iostream&gt;
  #include "text.h"
  
  //function to get the size of a file
  unsigned int Get_Size(const char * FileName){
      std::ifstream filesize(FileName, std::ios::in|std::ios::ate);
  
      unsigned int SIZE = filesize.tellg();
  
      filesize.close();
  
      return SIZE;
  }
  
  //Takes a file name then turns it into a c-style character array
  const char * Get_Text(const char * FileName){
  
      //get size of the file
      unsigned int SIZE = Get_Size(FileName);
  
  
      std::ifstream file(FileName, std::ios::in);
  
      //I used a vector here so I could initialize it with a variable
      std::vector&lt;char&gt; text(SIZE);
  
      //here is where I loop through the file and get each character
      //and then put it into the corresponding spot in the vector
      std::streampos pos;
      for(int i = 0; i&lt;SIZE; i++){
              pos=i;
          file.seekg(pos);
          text[i] = file.get();
      }
  
      //I manually added the terminating Null character
      text.push_back('\0');
  
      //I set the pointer equal to the address of the first element in the vector
      const char * finalText = &amp;text[0];
  
      file.close();
  
      //this works    
      std::cout&lt;&lt;finalText&lt;&lt;std::endl;
  
      return finalText;
  };
  
  int main(){
  
      //this does not work
      std::cout&lt;&lt;Get_Text("Text.txt")&lt;&lt;std::endl;
  
      return 0;
  }
  </code></pre>
  
  <p>When I print the the text with the *char pointer inside of my function it works. But when the pointer is passed outside of the function and I try to use it, the output is a white box for each character in the console. I have tried a bunch of different things and nothing gets it to work. I don't understand why it works inside of the function but it doesn't work outside.</p>