Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Can you help with building a C + + program for file comparison. That can be efficient and work with large files. requirements: 1 .

Can you help with building a C++ program for file comparison. That can be efficient and work with large files.
requirements:
1. the program should open two files that can ignore line breaks
2. the program should run through the files and identify difrences or if same
3. the program should print out the line and column for location purposes
4. the program should give error if one file is longer or shorter than the other file
5. the program should countinue running to countinue looking for diffrences if it encounters one
6. the program should print where the issue has appeared in the text
7. the program can countinue checking after the diffrence line of characters is presented unless there is a better way`
Example file 1(Is much more complex):
abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123
Example file 2(Is much more complex):
abc123
abc123
abc123
abc123
abc123
abc123
abc123
abc123
abc123
abc123
abc123
abc123
Wanted output of program or something close to this:
if same:
file1.txt and file2.txt are identical.
-------------------------------------------------------
if diffrent:
file1.txt and file2.txt are diffrent.
Occurance 1:
file1.txt has an occurance at line: # column: #
Diffrence present in:
****************************************
^
file2.txt has an occurance at line: # column: #
Diffrence present in:
****************************************
^
-------------------------------------------------------
if diffrent:
file1.txt and file2.txt are diffrent.
Occurance 2:
file1.txt has an occurance at line: # column: #
Diffrence present in:
****************************************
^
file2.txt has an occurance at line: # column: #
Diffrence present in:
****************************************
^
-------------------------------------------------------
etc.
I received this code from an expert but it does not work. and not sure how I would even implement it.
#include
#include
#include
void compareFiles(const std::string& file1, const std::string& file2){
std::ifstream stream1(file1);
std::ifstream stream2(file2);
if (!stream1||!stream2){
std::cerr << "Error opening files." << std::endl;
return;
}
std::string line1, line2;
int lineNum =0;
while (std::getline(stream1, line1) && std::getline(stream2, line2)){
lineNum++;
// Ignore line breaks and compare line content
if (line1!= line2){
std::cout << "Files are different. Occurrence "<< lineNum <<":
";
std::cout << file1<<" has an occurrence at line: "<< lineNum <<" column: 1
";
std::cout << "Difference present in: "<< line1<<"
";
std::cout << file2<<" has an occurrence at line: "<< lineNum <<" column: 1
";
std::cout << "Difference present in: "<< line2<<"
";
}
}
// Check if one file is longer than the other
if (stream1.eof() && !stream2.eof()){
std::cout << "Files are different. "<< file1<<" is shorter than "<< file2<<".
";
} else if (!stream1.eof() && stream2.eof()){
std::cout << "Files are different. "<< file1<<" is longer than "<< file2<<".
";
} else {
std::cout << "Files are identical.
";
}
}
int main(){
std::string file1= "file1.txt";
std::string file2= "file2.txt";
compareFiles(file1, file2);
return 0;
}
running it with a small files that should be identical it gives an error where it should not as you can see in the output below:
./zip
Files are different. Occurrence 1:
Text/match1.txt has an occurrence at line: 1 column: 1
Difference present in: abc123abc123abc123
Text/match2.txt has an occurrence at line: 1 column: 1
Difference present in: abc123
And running with a large files it just runs non stop and just prints the files nonstop.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Introduction To Database And Knowledge Base Systems

Authors: S Krishna

1st Edition

9810206208, 978-9810206208

More Books

Students also viewed these Databases questions

Question

Evaluate employees readiness for training. page 275

Answered: 1 week ago