Hi everyone. I have little idea how databases are usually done, but I figured I'd try to write an advanced I/O database in C++, but I wanted to make a database class that's fairly universal for me to store raw data, text, lists, filepaths, and anything else I might need very easily.... and be able to edit it that information flexibly during runtime. My idea was to make some wrapper classes around the standard fstream class, but I'm getting stuck on something simple. Through my wrapper class (which at this point isn't much other than using fstream directly), I can successfully create a text file, open, and close it, but for whatever reason, I can't write any data to the file. I don't get any errors. The single I/O file is just blank. Any ideas?
My hunch was that c++ doesn't like fstreams that are both Input AND output, but the documentation on cplusplus.com seems to suggest this is done as often as just using input or output mode alone.
I'll post the relevant code in this pastebin:
http://pastebin.com/06ejZdKd
I tend to code things I think I will need later and less on the problem at hand. Thus I have almost 1k lines (most of which aren't shown in link) and no working, functional database at all. I'll highlight what sections I was looking at to find the problem, but to no avail:
1) if you look at the declaration of the IO file, is this what I want?
|
_handle.open(fileName_, std::ios::in | std::ios::out | std::ios::app)
|
2) and the handler function
1 2 3 4 5 6 7 8 9
|
bool Handler::addText(cch* line_){
if (_handle.is_open()){
std::cout << "File Open!" << std::endl;
_handle.put('s');
} else {
std::cout << "File Not Open!" << std::endl;
};
return true;
};
|
It may help to know that
cch is a macro for
const char.
How exactly should I write data to the file? Using put('s') makes no sense and was just for debugging purposes... but nothing worked that I tried. What should I have here?
Let me know what you think, and thanks in advance everyone.