fstream datoteka;
datoteka.open("Informacije.txt", fstream::in | fstream::out | fstream::app);
if(!datoteka.is_open()){
ifstream datoteka("Informacije.txt")
datoteka.open("my_file.txt", fstream::in | fstream::out | fstream::app);
}/*I'm writing IN the file outside of that if statement.
So what it should do is create a file if it was not created before, and if it is created write into that file.
Hello there, so what I wanted from my program is that it check if the file already exists, sothe program open if it does and I can write in it, if the file is not opened(have not been created before) the program create it. So the problem is when I create a .csv file, and finish writing and I wanted to check if the written is really there, the file cannot be opened. In .txt file, everything is blank.
datoteka.open(filename, std::fstream::in | std::fstream::out | std::fstream::app);
works fine.
#include <fstream>
#include <iostream>
using namespace std;
int main(void)
{
char filename[ ] = "Informacije.txt";
fstream appendFileToWorkWith;
appendFileToWorkWith.open(filename, std::fstream::in | std::fstream::out | std::fstream::app);
// If file does not exist, Create new file
if (!appendFileToWorkWith )
{
cout << "Cannot open file, file does not exist. Creating new file..";
appendFileToWorkWith.open(filename, fstream::in | fstream::out | fstream::trunc);
appendFileToWorkWith <<"\n";
appendFileToWorkWith.close();
}
else
{ // use existing file
cout<<"success "<<filename <<" found. \n";
cout<<"\nAppending writing and working with existing file"<<"\n---\n";
appendFileToWorkWith << "Appending writing and working with existing file"<<"\n---\n";
appendFileToWorkWith.close();
cout<<"\n";
}
return 0;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With