All pastes #793804 Raw Edit

cpp-average

public cpp v1 · immutable
·published 2007-11-22 17:08 UTC
rendered paste body
#include <string>#include <vector>#include <fstream>#include <iostream>#include <sstream>#include <math.h>#include <stdio.h>using namespace std;// files has to be in folder ../Data/int main(void){	fstream inputFile;	ofstream outputFile;	string fileName;	string fileOutName = "";	string fileOutNameHelp = "";	string castString;				// help-string for casting int to string...	string outputString;	vector< vector <int> > inputRanges(2000, vector<int> (181, 0));	int sumRanges = 0;	float average;	int outputFileLenght = 0;	int inputRange;	float initFloat;	char* charArray = new char[80];	//	float outputX, outputY;//	float mittelwert[2000];//	const float pi = 3.14159;//	const float divisorRadToDeg = 2*pi/360;		// iterate over all 2000 input-files	for (int i = 0; i <= 1999; i++)	{		// creating input-fileName depends on the lenght of i		if (i < 10)		{			fileName = "../Data/Front00000";	// i < 0 means there are 5 Zeros before adding i			stringstream castStringStream;			castStringStream<<i;			castStringStream>>castString;			fileName.append(castString);			fileName.append(".dat");		}				if (i >= 10 && i < 100)		{			fileName = "../Data/Front0000";		// i >= 10 && i < 100 means there are 4 Zeros before adding i			stringstream castStringStream;			castStringStream<<i;			castStringStream>>castString;			fileName.append(castString);			fileName.append(".dat");		}				if (i >= 100 && i < 1000)		{			fileName = "../Data/Front000";		// i >= 100 && i < 1000 means there are 3 Zeros before adding i			stringstream castStringStream;			castStringStream<<i;			castStringStream>>castString;			fileName.append(castString);			fileName.append(".dat");		} 				if (i >= 1000)		{			fileName = "../Data/Front00";		// i >= 1000 means there are 2 Zeros before adding i			stringstream castStringStream;			castStringStream<<i;			castStringStream>>castString;			fileName.append(castString);			fileName.append(".dat");		}		// open Input-File		inputFile.open(fileName.c_str(), ios::in);				// if read in of input-file successfull		if (inputFile.good())		{						// delete the two comment-lines at the beginning of input-file			getline(inputFile, castString);			getline(inputFile, castString);						for (int j = 0; j <= 180; j++)			{				getline(inputFile, castString);		// get next line of the input-file				{					if(castString.find("#") == string::npos)					{							// cast string to int						std::istringstream helpString("0");						helpString.str(castString);						helpString>>inputRange;												inputRanges[i][j] = inputRange;					}				}			}		}	}		// create output-file	string castHelpString;	outputString = "# 181 points";	outputFileLenght += 12;	outputString.append("\n");	outputFileLenght++;	outputString.append("# average of 2000 range-measurements");	outputFileLenght += 36;		for (int i = 0; i <= 180; i++)	{		for (int j = 0; j <= 1999; j++)		{			sumRanges += inputRanges[j][i];		}				average = sumRanges / 2000;				outputString.append("\n");		// next 3 lines: casting float average to Array of chars charArray to get it in the outputString		// inputRange is used as a help variable to count the file-lenght correctly		initFloat = 0.0;		sprintf(charArray, "%f", initFloat);		inputRange = sprintf(charArray, "%f", average);		outputString.append(charArray);		outputFileLenght++;		outputFileLenght += inputRange;	}		// open and write output-file	fileOutName = "averageOfRanges.dat";	outputFile.open(fileOutName.c_str(), ios::out);	outputFile.write(outputString.c_str(), outputFileLenght);	outputFileLenght = 0;			// cleaning some variables	castString.clear();	outputString.clear();	inputFile.close();	outputFile.close();	cout << "Fertig!";		return 0;}