I am trying to create a switch statement using the parameters that can be passed into my File classes constructor in the mode
parameter. However, as mode can be up to 2 chars (r
, r+
, w
, or w+
), I do not know how to create a switch statement that will get this done for me.
Does anyone have any suggestions on how to implement this? Currently with what I have below, I am getting errors for the r+
and `w+ cases, as those are not chars, but rather strings
File::File(const char *name, const char *mode) {
int fileMode = 0; //Initializing mode to 0
fileName = name; //Setting the file name of this File object to the name we pass in.
switch(*mode){
case 'r':
//do stuff…
break;
// Open a text file for update (that is, for both reading and writing)
case 'r+':
//do stuff…
break;
case 'w':
//do stuff…
break;
// Open a text file for update (reading and writing),
// first truncating the file to zero length if it exists
// or creating the file if it does not exist.
case 'w+':
//do stuff…
break;
default: //We should never reach the default case, as the user shouldnt pass in anything else so I assert(0) in this case.
assert(0);
}
Problem solved that I cant use more than one char
at a time for a switch statement.