sum up all integers from input text file

Bjarne Stroustrup “Programming Principles and Practice Using C++”
Chapter 10 Exercise 11
Using std_lib_facilities.h by Bjarne Stroustrup.

//	Philipp Siedler
//	Bjarne Stroustrup's PPP
//	Chapter 10 Exercise 11

#include "std_lib_facilities.h"

void read(ifstream& _ist, double& _sum) {
	char in;

	while (true) {
		if (_ist.eof()) {
			break;
		}
		else {
			_ist >> in;
			if (isdigit(in)) {
				_ist.unget();
				double d;
				_ist >> d;
				_sum += d;
			}
		}
	}
}

void calculate() {
	double sum = 0;
	ifstream ist{ "input/ch10_11_in.txt" };
	read(ist, sum);
	cout << sum << endl;
}

int main()
try {

	calculate();
	keep_window_open();
}
catch (exception& e) {
	cout << e.what() << endl;
	keep_window_open();
}
catch (...) {
	cout << "Exiting" << endl;
	keep_window_open();
}
Output:
26
Please enter a character to exit
Input-File: ch10_11_in.txt
bears: 17 elephants 9 end

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.