답변:
다음과 같이 추가 열기 모드를 지정해야합니다.
#include <fstream>
int main() {
std::ofstream outfile;
outfile.open("test.txt", std::ios_base::app); // append instead of overwrite
outfile << "Data";
return 0;
}
std::ofstream::out | std::ofstream::app
대신에 사용할 수 있습니까 std::ios_base::app
? cplusplus.com/reference/fstream/ofstream/open
out
사용할 때 명시 적으로 플래그 를 지정할 필요는 없으며 std::ofstream
항상 out
내재적으로 플래그를 사용합니다 . 에 대한 in
플래그 와 동일 합니다 std::ifstream
. 대신 사용 하는 경우 in
and out
플래그를 명시 적으로 지정해야합니다 std::fstream
.
이 코드를 사용합니다. 파일이 존재하지 않으면 파일이 생성되고 오류 검사가 추가됩니다.
static void appendLineToFile(string filepath, string line)
{
std::ofstream file;
//can't enable exception now because of gcc bug that raises ios_base::failure with useless message
//file.exceptions(file.exceptions() | std::ios::failbit);
file.open(filepath, std::ios::out | std::ios::app);
if (file.fail())
throw std::ios_base::failure(std::strerror(errno));
//make sure write fails with exception if something is wrong
file.exceptions(file.exceptions() | std::ios::failbit | std::ifstream::badbit);
file << line << std::endl;
}
#include <fstream>
#include <iostream>
FILE * pFileTXT;
int counter
int main()
{
pFileTXT = fopen ("aTextFile.txt","a");// use "a" for append, "w" to overwrite, previous content will be deleted
for(counter=0;counter<9;counter++)
fprintf (pFileTXT, "%c", characterarray[counter] );// character array to file
fprintf(pFileTXT,"\n");// newline
for(counter=0;counter<9;counter++)
fprintf (pFileTXT, "%d", digitarray[counter] ); // numerical to file
fprintf(pFileTXT,"A Sentence"); // String to file
fprintf (pFileXML,"%.2x",character); // Printing hex value, 0x31 if character= 1
fclose (pFileTXT); // must close after opening
return 0;
}
당신은 또한 이렇게 할 수 있습니다
#include <fstream>
int main(){
std::ofstream ost {outputfile, std::ios_base::app};
ost.open(outputfile);
ost << "something you want to add to your outputfile";
ost.close();
return 0;
}
ofstream
생성자에 전달하면 파일이 즉시 열리므로 open()
나중에 호출하는 것은 불필요합니다.
"C ++ Programming In Easy Steps"라는 책에서 해답에 대한 코드를 얻었습니다. 아래는 가능합니다.
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
int main()
{
ofstream writer("filename.file-extension" , ios::app);
if (!writer)
{
cout << "Error Opening File" << endl;
return -1;
}
string info = "insert text here";
writer.append(info);
writer << info << endl;
writer.close;
return 0;
}
이것이 도움이되기를 바랍니다.