okay I had a code that asked user to input a file name and instead i changed it to take the input from the command line.
I now want to output results of some functions to an output file. I have one function that is suppose to count the words in the file but it isnt working
I have a test file with two lines in it.
and my program will output the file with the correct counter values but I have a lot of other junk in it can anyone help?
this is my program code.....
this is part of the output file produced it has many more lines
I now want to output results of some functions to an output file. I have one function that is suppose to count the words in the file but it isnt working
I have a test file with two lines in it.
Code:
abc def ghi gk ades
this is my program code.....
Code:
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
using std::cin;
using std::cout;
using std::cerr;
using std::ifstream;
using std::ofstream;
using std::setw;
using std::string;
void word_count(ifstream&, ofstream&);
int main(int argc, char* argv[])
{
//if command line doesnt have 2 arguments output error message.
if(argc < 2)
cout << "error need more arguments.";
while(argc > 1)
{
//output each command line argument.
for(int idx = 0; idx < argc; ++idx)
{
//put file name in a c string.
string arg(argv[idx]);
// Define object for input
ifstream in(arg.c_str());
if(!in)
{
// couldn't open input file, exit
cerr << "Error: couldn't open "
<< arg
<< " exiting\n";
exit(1);
}
// create name of output file
string out_file_name = arg + ".COPY";
// Define object for output
ofstream out(out_file_name.c_str());
if(!out)
{
// couldn't open output file, exit
cerr << "Error: couldn't open "
<< out_file_name
<< " exiting\n";
exit(1);
}
// Output
const int WIDTH = 4;
int count = 1;
string input_string;
while (in >> input_string)
{
word_count(in, out);
// one word per line
out << setw(WIDTH) << count << ": "
<< input_string << "\n";
++count;
}
// Close files
in.close();
out.close();
return 0;
}}
}
//fuction definitions
void word_count(ifstream&, ofstream&)
{
int counter = 0;
while (!eof)
{
string words;
cin >> words;
++counter;
}
cout << counter << "\n";
}
Code:
1: ^?ELF^A^A^A^@^@^@^@^@^@^@^@^@^B^@^C^@^A^@^@^@¼<8c>^D^H4^@^@^@^@^Z^@^@^@^@^@^@4@^ 2: ^@^H^@(^@^^^@^[^@^F^@^@^@4^@^@^@4<80>^D^H4<80>^D^H^@^A^@^@^@^A^@^@^E^@^@^@^D^@^@^@^C^@^@^@4^A^@^@4<81>^D^H4<81>^D^H^S^@^@^@^S^@^@^@^D^@^@^@^A^@^@^@^A^@^@^@^@^@^@^@^@<80>^D^H^@<80>^D^Hk^V^@^@k^V^@^@^E^@^@^@^@^P^@^@^A^@^@^@l^V^@^@l¦^D^Hl¦^D^H<8c>^A^@°^B^@^@^F^@^@^@^@^P^@^@^B^@^@^@<84>^V^@^@<84>¦^D^H<84>¦^D^Hà ^@^@^@à ^@^@^@^F^@^@@^@^@^D^@^@^@H^A^@^@H<81>^D^HH<81>^D^H 3: ^@^@^@ 4: ^@^@^@^D^@^@^@^D^@^@^@PÃ¥td¸^T^@^@¸<94>^D^H¸<94>^D^H<^@^@^@<^@^@^@^D^@^@^@^D^@QÃ¥td^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^F^@^@^@^D^@^@^@/lib/ld-linux.so.2^@^@D^@^@^@^P^@^@^@^A^@^@^@GNU^@^@^@^@^@^B^@^@^@^B^@^@^@^E^@^@^@^Q^@^@^@$^@^@^@^R^@^@^@^X^@^@^@ 5: ^@^@^@^_^@^@^@ 6: ^@^@^@^@^@^@^@^]^@^@^@^V^@^@^@^[^@^@^@^U^@^@^@^@^@^@^@^@^@^@^@^A^@^@^@"^@^@^@ 7: ^@^@^@#^@^@^@!^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^C^@^@^@^@^@^@^@^F^@^@^@^@^@^@^@ 8: ^@^@^@ 9: ^@^@^@^@^@^@^@^H^@^@^@^@^@^@^@^@^@^@^@^E^@^@^@^D^@^@^@^@^@^@^@^@^@^@^@^Q^@^@^@^P^@^@^@^@^@^@^@^W^@^@^@^G^@^@^@^S^@^@^@^O^@^@^@^@^@^@^@^T^@^@^@^\^@^@^@ 10: ^@^@^@^Y^@^@^@^N^@^@^@^^^@^@^@^Z^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^B^@^@^@^@^@^@¼^E^@^@^R^@^@^@e^C^@^@^@^@^@^@Ã^A^@^@^R^@^@^@H^@^@^@^@^@^@^@^U^@^@^@^R^@^@^@^NC^@^@ø§^D^H<8c>^@^@^@^Q^@^Y^@[^A^@^@^@^@^@^@^T^@^@^@^R^@^@^@^R^B^@^@^@^@^@^@R^@^@^@^@^@^@^X^C^@^@^@^@^@^@
Comment