0

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;
}
2
Contributors
5
Replies
43
Views
2 Years
Discussion Span
Last Post by Moschops
Featured Replies
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 by Moschops

0

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;
}
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 by Moschops

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.