0

Hello,
I've got this kind of problem, where I want to change a word inside of a text file.
apparently, I can use the char to change the character, however, it can't changes any word or sentence, so can any one help me out. much appreciated.

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <iomanip> 
#include <string>
#include <cctype>
using namespace std;

int main(){

    ifstream fin;
	ofstream fout;

	fin.open("rect.svg");
	if (fin.fail()){
	cout << "open failed!";
	exit(1);
	}
    fout.open("rect1.svg");
    if (fout.fail()){
	cout << "save failed!";
	exit(1);
	}
     char next, key;
	cin >> key;
	do {
       fin >> next;
	   if (next == '2')
	       fout << '0';
	   else 
		   fout << next;
	}while (!fin.eof());
   fin.close();
   fout.close();

   cout << "end of the program.";
 cin.ignore(1000, '\n'); // clear out any additional input from the stream   
   cin.get();
   return 0;
}
3
Contributors
2
Replies
3
Views
9 Years
Discussion Span
Last Post by William Hemsworth
0

To change words/lines in a text file you need to delete the original file then write a new one with the changes.

Use std::strings to make it easier to change words/lines.

0

This example will read each word from a file, allow you to make the changes you want, and then write them back. The only problem with this example is that all indentation and extra spaces will be lost. To do it properly, you will have to load the entire file into a string, and make the changes manually.

#include<iostream>
#include<fstream>
#include<vector>
#include<string>
using namespace std;

const char fileName[] = "test.txt";

int main() {
	ifstream in(fileName);
	
	string word;
	vector<string> words;

	while (in >> word) {
		words.push_back(word);
	}

	/* Make changes */

	ofstream out(fileName);

	size_t size = words.size();

	for (size_t i = 0; i < size; ++i) {
		out << words[i] << ' ';
	}

	return 0;
}

Hope this helps.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.