Problem with unhandled exception run-time error

I am having problem with this run-time error coming up:
Unhandled exception at 0x7ADEE906 (ucrtbased.dll) in Project 11 FINAL RFID.exe: An invalid parameter was passed to a function that considers invalid parameters fatal.

the error shows up at: startTimeminutes = stod(startTimeVec[0]) * 60 +

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include<iostream>
#include<vector>
#include<string>
#include<fstream>

using namespace std;

vector<string> split(const string& target, const string& delimiter)
{
	vector <string> toBeReturned;
	size_t nextDelimiterIndex = target.find(delimiter, 0);
	if (nextDelimiterIndex < target.size())
		toBeReturned.push_back(target.substr(0, nextDelimiterIndex));

	while (nextDelimiterIndex < target.size() - 1 &&
		nextDelimiterIndex < target.find(delimiter, nextDelimiterIndex + 1))
	{
		toBeReturned.push_back(target.substr(nextDelimiterIndex + 1,
			target.find(delimiter, nextDelimiterIndex + 1) - nextDelimiterIndex - 1));
		nextDelimiterIndex =
			target.find(delimiter, nextDelimiterIndex + 1);

	}
	return toBeReturned;
}

vector<vector<vector<string>>>
racersDataExtractor(const vector<string>&myFileLast9Lines)
{
	vector<vector<vector<string>>>
		toBeReturned;
	for (size_t j = 0; j < 3; ++j)
	{
		toBeReturned.push_back(vector<vector<string>>());
		for (size_t i = 0; i < 3; ++i)
			toBeReturned[j].push_back(split(myFileLast9Lines[i + 3 * j], ","));
		if (j > 0)
		{
			vector<string> temp;
			for (size_t k1 = 0; k1 < 3; ++k1)
			{
				for (size_t k2 = 0;
					k2 < 3; ++k2)
				{
					if (toBeReturned[j][k1][1] == toBeReturned[j - 1][k2][1])
					{
						temp = toBeReturned[j][k1];
						toBeReturned[j][k1] = toBeReturned[j][k2];
						toBeReturned[j][k2] = temp;
					}
				}
			}
		}
	}
	return toBeReturned;
}

int main()
{
	fstream myData("racersdata.txt");
	if (!myData)
	{
		cout << "I couldn't find your file" << endl;
		system("pause");
		exit(1);
	}

	string myFileString;
	char next;
	while (myData.get(next))
		myFileString += next;
	string startTime = myFileString.substr(0, myFileString.find("\n"));

	string dataLines = myFileString.substr(myFileString.find("\n") + 1);
	vector<string> dataLinesVect = split(dataLines, "\n");
	vector<vector<vector<string>>>
		racersData = racersDataExtractor(dataLinesVect);

	cout << "Enter the racer's ID:\t";
	string racerID; cin >> racerID;

	int racerNumber = -1;
	for (size_t i = 0; i < 3; ++i)
		if (racersData[0][i][1] == racerID)
			racerNumber = i;
	if (racerNumber < 0)
	{
		cout << "Invalid ID" << endl;
		system("pause");
		exit(1);
	}
	double startTimeminutes = 0;
	double secondTimeminutes = 0;
	double thirdTimeminutes = 0;

	vector<string> startTimeVec = split(racersData[0][racerNumber][2], "");
	vector<string> secondTimeVec = split(racersData[1][racerNumber][2], "");
	vector<string>thirdTimeVec = split(racersData[2][racerNumber][2], "");

	startTimeminutes = stod(startTimeVec[0]) * 60 +
		stod(startTimeVec[1]) + stod(startTimeVec[2]) / 60;

	secondTimeminutes = stod(secondTimeVec[0]) * 60 +

		stod(secondTimeVec[1]) + stod(secondTimeVec[2]) / 60;

	thirdTimeminutes = stod(thirdTimeVec[0]) * 60 +
		stod(thirdTimeVec[0]) * 60 +

		stod(thirdTimeVec[1]) + stod(thirdTimeVec[2]) / 60;

	cout << "the racer's overall finish place is" << racersData[2][racerNumber][2]
		<< "\n race split times in minutes/mile for split1 is " << (secondTimeminutes - startTimeminutes) / 7
		<< "\n race split times in minutes/mile for split2 is " << (thirdTimeminutes - secondTimeminutes) / 6.1
		<< "\n The overall race time (minutes) is " << (thirdTimeminutes - startTimeminutes)
		<< "\n and overall race pace (minutes/miles) is " << (thirdTimeminutes - startTimeminutes) / 13.1
		<< ".";
	return 0;
}


[/code]

Input file data:

08 00 00
0,100,08 00 00
0,132,08 00 03
0,182,08,00,15
1,100,08,50,46
1,182,08,51,15
1,132,08,51,18
2,132,09,34,16
2,100,09,35,10
2,182,09,45,15
Last edited on
The run-time error I get is at line 100
input file?
Sorry I added to my original message, but it is the following data:
08 00 00
0,100,08 00 00
0,132,08 00 03
0,182,08,00,15
1,100,08,50,46
1,182,08,51,15
1,132,08,51,18
2,132,09,34,16
2,100,09,35,10
2,182,09,45,15
run your program through a debugger and watch your variables
you're passing an empty string to stod()

vector<string> startTimeVec = split(racersData[0][racerNumber][2], "");
using 100 as racerID, that function is called like
split("08 00 00", "")
¿what is that supposed to return?
¿what is returning?
Topic archived. No new replies allowed.