(in C++ ) I have to write a program that does the following: Write a program tha
ID: 3929511 • Letter: #
Question
(in C++)
I have to write a program that does the following:
Write a program that reads a file containing only integers, but some of the integers have embedded commas (as in 145, 020). The program should copy the information to a new file, removing any commas from the information. Do not change the number of values per line in the file.
so far i have this:
#include
#include
using namespace std;
int main()
{
const char NEWLINE = ' ';
const char TAB = ' ';
const char COMMA = ',';
char input_char = 1;
ifstream infile("d:\withcommas.txt");
if (infile.fail())
{
cerr << "error opening withcommas.txt ";
exit(-1);
}
ofstream output;
output.open("d:\withoutcommas.txt");
if (output.fail())
{
cerr << "error opening withoutcommas.txt ";
exit(-1);
}
while (!infile.eof())
{
if (input_char == COMMA)
output << " ";
else
{
int x;
infile >> x;
output << x << endl;
}
}
infile.close();
output.close();
return 0;
}
but every time I run the program my output file just returns nonsense and doesn't do what I want it to, I have a feeling it has something to do with my While loop. If you could please tell me exactly what I need to add to this and why to make it run correctly I would greatly appreciate it thank you!
Explanation / Answer
Opening file logic is wrong in your code, apart from this; remaining syntax is fine. Here I am attaching working and modified code.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
#include <iostream>
#include<stdlib.h>
#include <fstream>
#include <string>
using namespace std;
int main()
{
const char NEWLINE = ' ';
const char TAB = ' ';
const char COMMA = ',';
char input_char = 1;
string line;
ifstream infile("withcommas.txt");
if (infile.fail())
{
cerr << "error opening withcommas.txt ";
exit(-1);
}
ofstream output("withoutcommas.txt");
if (output.fail())
{
cerr << "error opening withoutcommas.txt ";
exit(-1);
}
while (getline( infile, line )){
for(int i=0;i<line.length();i++){
if(line[i] != ','){ //filtering comma
output<<line[i];
}
}
output<<" ";
}
infile.close();
output.close();
return 0;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.