I understand that a char pointer is used to create strings in C
(with a null terminator). But I don't understand why I am getting an error in C++ for passing a string as a file name, yet it works for a char*
.
The h prototype and cpp function signatures have matched for both scenarios.
I have included some code excerpt and all the includes I have for this 'utility' file (I have a few other functions in it besides the read and write ones.
//from the header includes
#include <string>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <limits>
#include <cctype>
#include <cstdlib>
//from the cpp file
//this one throws and error!
void readFiles(string fileName1)
{
ifstream file1;
file1.open(fileName1);
//to do implement read...
}
//This one works
void readFiles(char* fileName1)
{
ifstream file1;
file1.open(fileName1);
//to do implement read...
}
The error I get is:
no matching function for std::basic_ofstream::open(std::string&)
I've also tried passing by reference and pointer to the string. Is this because the file name is only read as a char array, some hang over from C?