| | |
I'm somehow messing up opening a file and making a c-style filename
Please support our C++ advertiser: Intel Parallel Studio Home
![]() |
•
•
Join Date: Aug 2008
Posts: 2
Reputation:
Solved Threads: 0
The following code is part of a program to document the book in my house, like those things they have at public libraries. I learned about minupulating files in programs last night and have many errors in this program.
First, the c-style string for filename comes out as - filename.txt" instead of without the quote
And even if you try running my program with a default filename like newbook it turns out to fail.
First, the c-style string for filename comes out as - filename.txt" instead of without the quote
And even if you try running my program with a default filename like newbook it turns out to fail.
Book::Book(string Title,string AuthorLastName,string AuthorFirstName,string PublishingCompany,int SeriesNumber,int NumPages,int CopyrightYear,string Series):
m_Title(Title),
m_Series(Series),
m_AuthorFirstName(AuthorFirstName),
m_AuthorLastName(AuthorLastName),
m_PublishingCompany(PublishingCompany),
m_SeriesNumber(SeriesNumber),
m_NumPages(NumPages),
m_CopyrightYear(CopyrightYear)
{
fstream filehandle;
string filename=m_Title+".txt";
char m_filename[80];
for(int i=0;i<filename.size();++i)
{
m_filename[i]=filename[i];
}
cout<<m_filename;
filehandle.open(m_filename);
if (!filehandle || !filehandle.good())
{
std::cout << "could not open file!\n";
}
filehandle << "out" << std::endl;
if (filehandle.fail())
{
std::cout << "failed to append to file!\n";
}
filehandle<<m_Title<<"\n";
filehandle<<m_AuthorFirstName<<" "<<m_AuthorLastName<<"\n";
filehandle<<"Published by "<<m_PublishingCompany<<" in "<<m_CopyrightYear<<"\n";
filehandle<<"No. "<<m_SeriesNumber<<" in the "<<m_Series<<" series\n";
filehandle<<m_NumPages<<" pages\n";
}•
•
Join Date: Mar 2008
Posts: 42
Reputation:
Solved Threads: 6
Please see my comments below
•
•
•
•
Book::Book(string Title,string AuthorLastName,string AuthorFirstName,string PublishingCompany,int SeriesNumber,int NumPages,int CopyrightYear,string Series): m_Title(Title), m_Series(Series), m_AuthorFirstName(AuthorFirstName), m_AuthorLastName(AuthorLastName), m_PublishingCompany(PublishingCompany), m_SeriesNumber(SeriesNumber), m_NumPages(NumPages), m_CopyrightYear(CopyrightYear) { fstream filehandle; string filename=m_Title+".txt"; char m_filename[80]; for(int i=0;i<filename.size();++i) { m_filename[i]=filename[i]; } //the c-style string should end with a '\0', //so add line m_filename[i] = '\0'; //define i out of the for statement cout<<m_filename; filehandle.open(m_filename); // the simplest way is to use filehandle.open(filename.c_str()); }
![]() |
Other Threads in the C++ Forum
- Previous Thread: Smart Pointers assignment
- Next Thread: Easter sunday problem
| Thread Tools | Search this Thread |
api application array arrays based beginner binary c++ c/c++ calculator char char* class classes code compile compiler console conversion count delete deploy desktop directshow dll download dynamic dynamiccharacterarray encryption error file forms fstream function functions game givemetehcodez google graph gui homeworkhelp iamthwee ifstream input int integer java lib linkedlist linker linux list loop looping loops map math matrix memory newbie news number numbertoword output pointer problem program programming project python random read recursion recursive reference return rpg simple sorting string strings temperature template templates test text text-file tree unix url variable vector video visual visualstudio win32 windows winsock wordfrequency wxwidgets





