<p>I want to open a file for reading, the C++ way. I need to be able to do it for:</p>

<ul>
<li><p>text files, which would involve some sort of read line function.</p></li>
<li><p>binary files, which would provide a way to read raw data into a <code>char*</code> buffer.</p></li>
</ul>

There are three ways to do this, depending on your needs. You could use the old-school C way and call
```
fopen
```
/
```
fread
```
/
```
fclose
```
, or you could use the C++ fstream facilities (
```
ifstream
```
/
```
ofstream
```
), or if you're using MFC, use the
```
CFile
```
class, which provides functions to accomplish actual file operations.
All of these are suitable for both text and binary, though none have a specific readline functionality. What you'd most likely do instead in that case is use the fstream classes (fstream.h) and use the stream operators (<< and >>) or the read function to read/write blocks of text:
```
```
int nsize = 10;
std::vector<char> somedata(nsize);
ifstream myfile;
myfile.open("<path to file>");
myfile.read(somedata.data(), nsize);
myfile.close();
```
```
Note that, if you're using Visual Studio 2005 or higher, traditional fstream may not be available (there's a new Microsoft implementation, which is slightly different, but accomplishes the same thing).