Hello, I made a program that finds all the words in my .txt file and shows them to the screen, but now I want to make it so that I can pick a word from the .txt file and replace it with something else. For example :
teksts.txt has the words "dog, cat, bird" in it,
I want to choose the word "cat" and replace it with the word "rat".
Is there a simple way I can do it with useing this code as the base?
Im new to this, been looking all day, but couldnt figure it out.

I really need the help :(

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

int main() {
    string line = " ";
    ifstream fails;

    fails.open("teksts.txt");
    while (getline (fails, line) )
        {
         cout << line << '\n';
        }

    fails.close();
    std::cin.get();
    return 0;
}

Read every word from the file, and write it out to a new file. When the word you read in is the one you want to replace, don't write the original word; write your replacement word.

When done, delete the original file and rename the the new file to match the name of the old file.

Edited 1 Year Ago by Moschops

So Im trying out the string::find option, right now Im having a really hard time understanding it all togeather, how to make it all work togeather :(
My code is a mess I know, butIm really despret to find the answer or how/what I have to do to fix this and make it work.

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

int main() {
    string line = " ";
    ifstream fails;
    string text;
    string  text2;

    std::string str (text);
    std::string str2 (text2);

    fails.open("teksts.txt");
    while (getline (fails, line) )
        {
         cout << line << '\n';
        }

    cout << "Ievadiet vaardu kuru gribat atlasiit no faila: ";
    cin >> text;

    std::size_t found = str.find(text);

    found=str.find(text,found+1,6);

        if (found!=std::string::npos)
        std::cout << "Vaards tika atrasts: " <<text << '\n';


        cout << "Replace with the word: ";
        cin >> text2;

            str.replace(str.find(text),text.length(), text2);
          std::cout <<  text2 << '\n';


    fails.close();
    std::cin.get();
    return 0;
}

It looks like you are always replacing text in the string, whether you find something in it or not. Did you meant to do that, or is your if block crying out for a { and a } ?

Your indentation is odd and not helpful.

Edited 1 Year Ago by Moschops

This article has been dead for over six months. Start a new discussion instead.