जवाबों:
आपको एपेंड ओपन मोड को निर्दिष्ट करने की आवश्यकता है
#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
और 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 ++ प्रोग्रामिंग इन इजी स्टेप्स" नामक पुस्तक के उत्तर के लिए अपना कोड मिला। नीचे काम करना चाहिए।
#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;
}
मैं आशान्वित हूं कि इससे आपको सहायता मिलेगी।
आप एक का उपयोग कर सकते हैं fstream
और इसे std::ios::app
ध्वज के साथ खोल सकते हैं । नीचे दिए गए कोड पर एक नज़र डालें और यह आपके सिर को साफ कर दे।
...
fstream f("filename.ext", f.out | f.app);
f << "any";
f << "text";
f << "written";
f << "wll";
f << "be append";
...
आप यहाँ खुले मोड के बारे में और यहाँ की fstreams के बारे में अधिक जानकारी प्राप्त कर सकते हैं ।