Hey there, working on a program thats going to have a bunch of functions, but for now I am stuck on something that will be reused throughout the program alot: passing a string pointer to a function.
It may seem redundant or arbitrary that I am passing it as a pointer, but is required for the project in question.
I am not sure what I am doing wrong here, but it is returning the error:
In function `void charcount(std::string*)':
`length' has not been declared
request for member of non-aggregate type before '(' token
- for line 67 (which is the cout in the charcount function) -
I would really appreciate any and all advice/help on this.
Thanks for your time.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
//prototypes
void writestart();
void readstart(string &str1, string &str2, string &str3);
void charcount(string *);
int main()
{
string str1, str2, str3;
string *strptr1, *strptr2, *strptr3;
strptr1 = &str1;
strptr2 = &str2;
strptr3 = &str3;
writestart();
readstart(str1, str2, str3);
cout << endl << str1 << endl
<< str2 << endl
<< str3 << endl << endl;
charcount(strptr1);
}
//Starting Function that asks for the strings from user input to write to file for later usage.
void writestart()
{
ofstream wfile;
string str1, str2, str3;
cout << "Please enter your first string:" << endl;
getline (cin,str1);
cout << "Please enter your second string:" << endl;
getline (cin,str2);
cout << "Please enter your third string:" << endl;
getline (cin,str3);
wfile.open("Stringfile.txt");
wfile << str1 << endl
<< str2 << endl
<< str3 << endl;
wfile.close();
}
//Function that reads the strings in for the program to use/format etc...
void readstart(string &str1, string &str2, string &str3)
{
ifstream rfile("Stringfile.txt");
getline(rfile, str1);
getline(rfile, str2);
getline(rfile, str3);
rfile.close();
}
//Determines and returns the number of characters in a string.
void charcount(string *str)
{
cout << endl << "Chars: " << *str.length() << endl;
}