d2jsp
Log InRegister
d2jsp Forums > Off-Topic > Computers & IT > Programming & Development > Paying 500fg For Correctly Correcting This > File I/o And While Statement
Closed New Topic New Poll
Member
Posts: 1,129
Joined: May 25 2013
Gold: 0.11
Oct 11 2013 05:07pm
Willing to get fg for this, can get mod to assure you get the fg

I have an assignment due at 8:00PM. I've had a ton of work to do this week and haven't really got to learn the topic before the assignment. I'm just trying to get the points for the assignment and learn the stuff after its due.

Problem:

You are to create a program that will read 50 integers from a file and sum them together. Output this sum to an output file. You will also output (to the file) how many numbers were odd, and how many were even (zeros may be considered even). Your program MUST employ a while loop to read the values from the file.

The while loop should check for TWO things (what are they?). Hint: you know you need to read 50 numbers, but for correct file processing, what else should you check for? Your grade will be based on whether or not you correctly identify both conditions to be used in the while loop.

here's my code so far:



#include <iostream> // Preprocessor directive for cin and cout
#include <fstream>
using namespace std;

int main ()
{
// Declaring variables
ifstream num_list;
int number(0), even(0), odd(0), count(0);
int sum, num;

num_list.open("Lab_7_Input_files.txt");

if (num_list.fail())
{
cout << "Error opening file\n";
}


while ( !num_list.eof())
{
count=0;
while (count <= 50)
{

sum += num_list;
}
}



num_list >> number;
while (number >= 0 && number <= 50)
{
if (num % 2 == 0)
{
even = even + number;
}
else
{
odd = odd + number;
}
}

cout << "The file contains " << even << "even numbers.\n";
cout << "The file contains " << odd << "odd numbers.\n";

return 0;
}



I am getting error: no match for 'operator+=' in 'sum += num_list'

I have been trying for hours, but can't seem to get it just right. I hate to ask this, but if someone could fix this and post it that would be great, as I really need the points.

Thanks in advance if anyone tries to help!
Member
Posts: 3,451
Joined: Feb 26 2010
Gold: 0.20
Oct 11 2013 05:15pm
you can't add a file stream to an integer (sum += num_list).

you should read in the next int, since c++ can't read integers from a file directly, you have one of two options.

Depending on how the file is structured, you could read next line and then change the string to an int.

Else, keep getting chars till you hit a space or carriage return, and then cast the string of chars into an int.

Member
Posts: 1,129
Joined: May 25 2013
Gold: 0.11
Oct 11 2013 05:23pm
Quote (silvermace @ Oct 11 2013 07:15pm)
you can't add a file stream to an integer (sum += num_list).

you should read in the next int, since c++ can't read integers from a file directly, you have one of two options.

Depending on how the file is structured, you could read next line and then change the string to an int.

Else, keep getting chars till you hit a space or carriage return, and then cast the string of chars into an int.




here is my new while loop:
while ( !num_list.eof())
{
count=0;
while (count <= 50)
{
num_list >> number;
sum += number;
count++;
}
}

now when I run it, a blank black box comes up(nothing happens)

This post was edited by Si7c on Oct 11 2013 05:23pm
Go Back To Programming & Development Topic List
Closed New Topic New Poll