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.
所以它应该做的是创建一个文件,如果它之前没有创建过,如果它被创建写入该文件。
你好,所以我想从我的程序中检查文件是否已经存在,如果文件已经存在则打开程序,如果文件没有打开则可以写入(尚未创建之前)程序创建它。所以问题是当我创建一个.csv文件,并完成写入,我想检查写入是否真的存在,该文件无法打开。在.txt文件中,一切都是空白的。
答案 0 :(得分:5)
datoteka.open(filename, std::fstream::in | std::fstream::out | std::fstream::app);
工作正常。
#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;
}
答案 1 :(得分:2)
如果文件名不存在,则创建文件。除此以外, fstream :: app,如果文件名已经存在,则将数据附加到文件中而不是覆盖它。
int writeOnfile (char* filetext) {
ofstream myfile;
myfile.open ("checkSellExit_file_output.csv", fstream::app);
myfile << filetext;
myfile.close();
return 0;
}